In what way is the result not accurate?
When I have calculated volume per second I have not used the 'derivative' funktion and have replaced 'divide(60)' by the 'scale_interval' function, which can adapt to changing aggregation intervals, as described in this thread.