Calculer efficacement les totaux cumulés dans MySQL
L'approche traditionnelle de MySQL pour calculer les totaux cumulés à l'aide de l'affectation de variables est désormais obsolète. Cet article présente une méthode moderne et efficace pour obtenir le même résultat sans recourir à des fonctionnalités obsolètes.
Une requête unique et optimisée offre une solution supérieure :
<code class="language-sql">SET @running_total := 0; SELECT DAYOFYEAR(`date`) AS day_of_year, COUNT(*) AS daily_count, (@running_total := @running_total + COUNT(*)) AS running_total FROM `orders` WHERE `hasPaid` > 0 GROUP BY day_of_year ORDER BY day_of_year;</code>
Cette requête initialise une variable, @running_total
, à zéro. La fonctionnalité principale réside dans l'expression (@running_total := @running_total COUNT(*))
. Ceci met à jour @running_total
de manière cumulative avec le COUNT(*)
pour chaque jour, produisant le total cumulé (running_total
) ainsi que le décompte quotidien (daily_count
) et le jour de l'année (day_of_year
). Le résultat est un calcul du total cumulé concis et efficace, éliminant le besoin de gestion de variables obsolètes.
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!