Mysql
 sql >> Database >  >> RDS >> Mysql

Calcola un totale parziale in MySQL

Forse una soluzione più semplice per te e impedisce al database di dover eseguire un sacco di query. Questo esegue solo una query, quindi fa un po' di calcoli sui risultati in un unico passaggio.

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

Questo ti darà un'ulteriore colonna RT (totale corrente). Non perdere l'istruzione SET in alto per inizializzare prima la variabile del totale parziale o otterrai semplicemente una colonna di valori NULL.