Usando una consulta correlacionada:
SELECT t.id,
t.count,
(SELECT SUM(x.count)
FROM TABLE x
WHERE x.id <= t.id) AS cumulative_sum
FROM TABLE t
ORDER BY t.id
Uso de variables MySQL:
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
Nota:
- El
JOIN (SELECT @running_total := 0) r
es una unión cruzada y permite la declaración de variables sin requerir unSET
separado dominio. - El alias de la tabla,
r
, MySQL lo requiere para cualquier subconsulta/tabla derivada/vista en línea
Advertencias:
- específico de MySQL; no es portable a otras bases de datos
- El
ORDER BY
es importante; asegura que el orden coincida con el OP y puede tener mayores implicaciones para el uso de variables más complicadas (IE:funcionalidad psuedo ROW_NUMBER/RANK, de la que carece MySQL)