Kumulierte SQL-Summe

Kumulierte Sql Summe



In SQL bezieht sich eine kumulative Summe auf eine Methode, mit der wir die laufende Summe einer numerischen Spalte in einer Datenbanktabelle berechnen können. Eine kumulative Summe spielt in einer Vielzahl von Szenarien eine Rolle, beispielsweise bei der Verfolgung des Fortschritts oder der Berechnung der gleitenden Durchschnitte eines bestimmten Werts.

In diesem Tutorial lernen wir, wie man die kumulative Summe in SQL mithilfe verschiedener Methoden und Techniken implementiert und nutzt.







Beispieldaten

Um besser zu verstehen, wie wir die kumulative Summe implementieren und verwenden können, beginnen wir mit der Erstellung einer Basistabelle mit Beispieldaten. Dadurch können wir in diesem Beitrag die Funktionsweise aller Methoden schnell und effizient demonstrieren.



Erstellen Sie zunächst eine Basistabelle, in der die Produktinformationen gespeichert sind.



CREATE TABLE-Produkte (
produkt_id INT PRIMÄRSCHLÜSSEL,
Produktname VARCHAR ( 255 ) ,
Preis DEZIMAL ( 10 , 2 )
) ;





Dadurch sollte eine neue Tabelle mit dem Namen „Produkte“ erstellt werden, in der die Produkt-ID, der Produktname und der Preis jedes Produkts gespeichert sind.

Anschließend können wir mit dem Hinzufügen von Beispieldaten fortfahren, wie in den folgenden Beispiel-Einfügeanweisungen gezeigt:



IN Produkte einfügen ( Produkt-ID, Produktname, Preis )
WERTE
( 1 , „Visual Studio Code“ , 10.00 ) ,
( 2 , „Erhabener Text“ , 80,00 ) ,
( 3 , „PyCharm Professional“ , 199,00 ) ,
( 4 , „Eclipse-IDE“ , 30.00 ) ,
( 5 , „IntelliJ IDEA Ultimate“ , 699,00 ) ,
( 6 , „GitHub-Desktop“ , 20.00 ) ,
( 7 , „Warte Software“ , 10.00 ) ,
( 8 , 'Xcode' , 660,00 ) ,
( 9 , 'NetBeans' , 0,00 ) ,
( 10 , 'Atom' , 60,00 ) ;

HINWEIS: Die angegebenen Daten sind völlig fiktiv. Sie stellen nicht den tatsächlichen Preis der aufgeführten Artikel dar.

Die resultierende Tabelle sieht wie folgt aus:

SQL-Kumulative Summe (Selbstverknüpfung)

Eine der Techniken, mit denen wir eine kumulative Summe für eine bestimmte Spalte erstellen können, ist die Verwendung der Self-Join-Methode. Ein Vorteil dieser Methode besteht darin, dass sie in fast allen SQL-Datenbanken funktioniert, auch in denen, die die Windows-Funktionen nicht unterstützen.

Nehmen Sie zum Beispiel die vorherige Tabelle „Produkte“. Wir können die kumulative Summe der Preisspalte erstellen, wie in der folgenden Abfrage gezeigt:

WÄHLEN
p1.product_id,
p1.Produktname,
p1.Preis,
SUMME ( p2.Preis ) AS kumulative_summe
AUS
Produkte p1
VERBINDEN
Produkte p2
AN
p1.product_id > = p2.product_id
GRUPPIERE NACH
p1.product_id,
p1.Produktname,
p1.Preis
SORTIEREN NACH
p1.product_id;

Haben Sie die Funktionsweise der Abfrage bemerkt? Wenn nicht, bleiben Sie bei uns, wir erklären es Ihnen Schritt für Schritt.

In der angegebenen Beispielabfrage erstellen wir zunächst zwei Aliase – „p1“ und „p2“ – für die Tabelle „products“, die es uns ermöglichen, einen Self-Join durchzuführen.

Anschließend verbinden wir „p1“ und „p2“ unter der Bedingung, dass die „product_id“ von „p1“ größer oder gleich der „product_id“ von „p2“ ist.

Im nächsten Schritt rufen wir die Funktion sum() auf, die im Grunde die kumulative Summe der Preise für jede Zeile berechnet.

Zuletzt gruppieren wir die Ergebnisse nach „product_id“, „product_name“ und „price“ und ordnen die Ergebnisse.

Nach diesem Vorgang sollten wir eine kumulative Summe für jeden Datensatz haben, wie in der resultierenden Tabelle gezeigt, wie im Folgenden dargestellt:

Wie Sie sehen, erhalten wir die Gesamtsumme aller vorherigen Zeilen. Die letzte Zeile sollte die Gesamtsumme aller vorherigen Zeilen enthalten.

SQL-Kumulative Summe (Fensterfunktionen)

Eine effizientere und praktischere Möglichkeit zur Berechnung der kumulativen Summe in SQL besteht darin, die Fensterfunktionen zu nutzen, sofern diese unterstützt werden.

Wenn Sie über eine Datenbank wie SQL Server, PostgreSQL oder MySQL Version 8.0 und höher verfügen, ist dies die nützlichste und empfohlene Methode zur Bestimmung der kumulativen Summe einer bestimmten Spalte.

Schauen Sie sich das folgende Beispiel an:

WÄHLEN
Produkt ID,
Produktname,
Preis,
SUMME ( Preis ) ÜBER ( NACH Produkt-ID BESTELLEN ) AS kumulative_summe
AUS
Produkte;

In diesem Fall beginnen wir mit der Auswahl der Spalten „product_id“, „product_name“ und „price“ aus der Tabelle „products“.

Anschließend verwenden wir die SUM()-Funktion als Fensterfunktion unter Verwendung der OVER-Klausel.

In der OVER-Klausel geben wir die ORDER BY-Klausel an, die die Reihenfolge definiert, in der die kumulative Summe berechnet wird.

Dies sollte eine ähnliche Ausgabe zurückgeben, wie im Folgenden gezeigt:

Sie werden feststellen, dass die Verwendung der Fensterfunktionen im Vergleich zur Verwendung von Selbstverknüpfungen kohärenter, effizienter und lesbarer ist.

Abschluss

In diesem Tutorial haben wir alles über kumulative Summen in SQL gelernt. Wir haben auch behandelt, wie man die Self-Joins- und Window-Funktionen verwendet, um die kumulative Summe in SQL durchzuführen.