Effiziente Berechnung laufender Summen in MySQL
Der traditionelle Ansatz von MySQL zur Berechnung laufender Summen mithilfe der Variablenzuweisung ist jetzt veraltet. Dieser Artikel zeigt eine moderne, effiziente Methode, um das gleiche Ergebnis zu erzielen, ohne auf veraltete Funktionen angewiesen zu sein.
Eine einzige, optimierte Abfrage bietet eine überlegene Lösung:
<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>
Diese Abfrage initialisiert eine Variable @running_total
auf Null. Die Kernfunktionalität liegt im Ausdruck (@running_total := @running_total COUNT(*))
. Dadurch wird @running_total
kumulativ mit dem COUNT(*)
für jeden Tag aktualisiert, wodurch die laufende Summe (running_total
) neben der Tageszählung (daily_count
) und dem Tag des Jahres (day_of_year
) entsteht. Das Ergebnis ist eine präzise und effektive laufende Gesamtberechnung, die die Handhabung veralteter Variablen überflüssig macht.
Das obige ist der detaillierte Inhalt vonWie berechnet man eine laufende Summe in MySQL, ohne veraltete Variablen zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!