Heim >Datenbank >MySQL-Tutorial >Wie kann man laufende Summen in MySQL effizient berechnen?
Laufende MySQL-Summe: Lösung unter Verwendung von Benutzervariablen
Dieser Artikel mit dem ursprünglichen Titel „Berechnen einer laufenden Summe in MySQL“ soll einer Tabelle eine Spalte hinzufügen, die die kumulative Summe der vorherigen Spaltenwerte anzeigt. Allerdings heißt es in der Antwort, dass die Verwendung von Benutzervariablen in Ausdrücken mittlerweile veraltet ist und in einer zukünftigen Version entfernt wird. Daher bieten wir eine einfachere Lösung an, bei der eine laufende Gesamtvariable initialisiert und eine einzelne Abfrage mithilfe mathematischer Berechnungen ausgeführt wird, um das gewünschte Ergebnis zu erzielen.
Die bereitgestellten Abfragen lauten wie folgt:
<code class="language-sql">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</code>
Diese Abfrage initialisiert zunächst die Benutzervariable @runtot mithilfe einer SET-Anweisung auf 0. Anschließend wird eine Unterabfrage ausgeführt, um die erforderlichen Daten aus der Auftragstabelle abzurufen. Schließlich kombiniert die äußere Abfrage die Ergebnisse der Unterabfrage mit einer laufenden Gesamtberechnung.
Die resultierende Tabelle enthält eine zusätzliche Spalte namens rt, die die laufende Summe für Spalte c für jede Zeile darstellt. Diese Lösung vermeidet die Verwendung veralteter Benutzervariablen in Ausdrücken und bietet einen effizienteren Ansatz mit einer einzigen Abfrageausführung.
Das obige ist der detaillierte Inhalt vonWie kann man laufende Summen in MySQL effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!