sql / intermediate
Snippet
Berechnung fortlaufender Summen mit der ANSI-SQL-OVER-Klausel
Window-Funktionen führen Berechnungen über eine Gruppe von Tabellenzeilen aus, die mit der aktuellen Zeile in Beziehung stehen, ohne das Ergebnis in einer einzelnen Zeile zusammenzufassen. Durch die Kombination von SUM(...) OVER mit PARTITION BY und ORDER BY berechnet SQL dynamisch fortlaufende Summen pro Partition.
snippet.sql
sql
1
2
3
4
5
6
7
8
9
10
SELECTorder_id,customer_id,order_date,order_amount,SUM(order_amount) OVER (PARTITION BY customer_idORDER BY order_date) AS running_totalFROM orders;
Erklärung
1
SELECT
Startet die Auswahlliste mit Spalten und der Window-Funktionsberechnung.
2
SUM(order_amount) OVER (
Initiiert die Aggregate-Window-Funktion, ohne Zeilen wie bei GROUP BY zu komprimieren.
3
PARTITION BY customer_id
Setzt die kumulative Berechnungsgrenze für jeden einzelnen Kunden zurück.
4
ORDER BY order_date
Sortiert die Datensätze chronologisch innerhalb jeder Partition zur Berechnung der laufenden Summe.
5
) AS running_total
Schließt die Window-Klausel und weist der kumulativen Spalte einen Alias zu.