Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save francisguchie/b3a9cebf488a844fd52cef41a3b349bd to your computer and use it in GitHub Desktop.
Save francisguchie/b3a9cebf488a844fd52cef41a3b349bd to your computer and use it in GitHub Desktop.
MySQL: Running Total (Cumulative Sum)
-- without using SET variable
SELECT t.id,
t.count,
(@running_total := @running_total + t.count) AS cumulative_sum
FROM TABLE t
JOIN (SELECT @running_total := 0) r
ORDER BY t.id
-- with SET variable
SET @running_total := 0;
SELECT
q1.d,
q1.c,
(@running_total := @running_total + q1.c) AS rt
FROM
(SELECT
DAYOFYEAR(`date`) AS d,
COUNT(*) AS c
FROM `orders`
WHERE `hasPaid` > 0
GROUP BY d
ORDER BY d
) AS q1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment