Calcul du total courant MySQL : un exemple pratique
Travailler avec des données tabulaires nécessite souvent de calculer des totaux cumulés pour une analyse efficace. Cet exemple montre comment calculer un total cumulé du nombre de commandes quotidiennes dans MySQL. Nous commençons par une requête qui compte les commandes par jour :
<code class="language-sql">SELECT DAYOFYEAR(`date`) AS d, COUNT(*) AS daily_count FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d</code>
Cela donne des résultats similaires à :
d | daily_count |
---|---|
20 | 5 |
21 | 7 |
22 | 12 |
23 | 4 |
Pour ajouter une colonne de total cumulé, nous utilisons une variable utilisateur :
<code class="language-sql">SET @running_total:=0; SELECT q1.d, q1.daily_count, (@running_total := @running_total + q1.daily_count) AS running_total FROM (SELECT DAYOFYEAR(`date`) AS d, COUNT(*) AS daily_count FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d) AS q1;</code>
Ce code initialise une variable @running_total
à zéro. La requête interne (q1
) sélectionne le jour et le nombre de commandes quotidiennes. La requête externe parcourt ensuite q1
, ajoutant le décompte de chaque jour à @running_total
et stockant la somme cumulée dans la colonne running_total
.
Le résultat inclut désormais le total cumulé :
d | daily_count | running_total |
---|---|---|
20 | 5 | 5 |
21 | 7 | 12 |
22 | 12 | 24 |
23 | 4 | 28 |
Cette requête améliorée fournit un total cumulé, simplifiant ainsi l'analyse et la visualisation des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!