Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-SELECT-Funktion zum Summieren aktueller Daten

Dies wird als kumulative Summe bezeichnet.

In Oracle und PostgreSQL , wird mit einer Fensterfunktion berechnet:

SELECT  id, val, SUM() OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
FROM    mytable

Allerdings MySQL unterstützt es nicht.

In MySQL , können Sie es mit Sitzungsvariablen berechnen:

SET @s = 0;

SELECT  id, val, @s := @s + val
FROM    mytable
ORDER BY
        id
;

oder rein satzbasiert, aber weniger effizient:

SELECT  t1.id, t1.val, SUM(t2.val)
FROM    mytable t1
JOIN    mytable t2
ON      t2.id <= t1.id
GROUP BY
        t1.id
;