Ce guide détaille deux méthodes efficaces pour générer des colonnes de somme cumulée dans les bases de données MySQL.
Méthode 1 : Utilisation de sous-requêtes corrélées
Cette approche utilise une sous-requête corrélée pour calculer la somme cumulée :
<code class="language-sql">SELECT t.id, t.count, (SELECT SUM(x.count) FROM TABLE x WHERE x.id <= t.id) AS cumulative_sum FROM TABLE t ORDER BY t.id;</code>
La sous-requête corrélée, intégrée dans la clause AS
, calcule dynamiquement la somme cumulée pour chaque ligne. Il additionne les valeurs count
depuis le début du tableau jusqu'à et y compris le id
de la ligne actuelle.
Méthode 2 : exploiter les variables MySQL
Les variables MySQL offrent une méthode alternative pour les calculs de sommes cumulées :
<code class="language-sql">SELECT t.id, t.count, @running_total := @running_total + t.count AS cumulative_sum FROM TABLE t JOIN (SELECT @running_total := 0) r ORDER BY t.id;</code>
Cette méthode initialise une variable MySQL, @running_total
, à 0 à l'aide d'une jointure croisée. Au fur et à mesure que la requête parcourt chaque ligne de TABLE t
, @running_total
accumule les valeurs count
, produisant la somme cumulée.
Considérations importantes :
ORDER BY
pour garantir un calcul précis de la somme cumulée. L'ordre des lignes dicte la séquence de sommation.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!