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

Berechnen Sie eine laufende Summe in MySQL

Vielleicht eine einfachere Lösung für Sie und verhindert, dass die Datenbank eine Menge Abfragen durchführen muss. Dadurch wird nur eine Abfrage ausgeführt und die Ergebnisse in einem einzigen Durchgang ein wenig berechnet.

SET @runtot:=0;
SELECT
   q1.d,
   q1.c,
   (@runtot := @runtot + 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

Dadurch erhalten Sie eine zusätzliche RT-Spalte (laufende Summe). Verpassen Sie nicht die SET-Anweisung oben, um zuerst die laufende Summenvariable zu initialisieren, sonst erhalten Sie nur eine Spalte mit NULL-Werten.