Mysql
 sql >> Base de données >  >> RDS >> Mysql

Calculer un total cumulé dans MySQL

Peut-être une solution plus simple pour vous et qui évite à la base de données de faire une tonne de requêtes. Cela exécute une seule requête, puis effectue un petit calcul sur les résultats en une seule passe.

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

Cela vous donnera une colonne RT (total cumulé) supplémentaire. Ne manquez pas l'instruction SET en haut pour initialiser d'abord la variable de total cumulé ou vous obtiendrez simplement une colonne de valeurs NULL.