Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save francisguchie/7d84a2c8c5d7d546b786e3667f7dc5b8 to your computer and use it in GitHub Desktop.
Save francisguchie/7d84a2c8c5d7d546b786e3667f7dc5b8 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