Laufende Summe
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy. Lektion 25 von 27.
Eine laufende (kumulative) Summe ist SUM über ein Fenster mit ORDER BY: Dadurch wächst das Aggregat Zeile für Zeile.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueOhne ORDER BY umfasst das Fenster jede Zeile, und du erhältst in jeder Zeile die Gesamtsumme. Mit dieser Klausel erweitert sich das Fenster in dieser Reihenfolge jeweils um eine Zeile, sodass jede Zeile nur sich selbst und alle vorherigen Zeilen sieht.
Füge ein PARTITION BY hinzu, um die laufende Summe für jede Gruppe zurückzusetzen, z. B. die laufende Summe des Umsatzes pro Region, Tag für Tag.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
revenue:region,day,amount
Gib region, day, amount und region_running_total zurück: den kumulierten amount für diese Region bis einschließlich dieses Tages. Die laufende Summe sollte für jede Region zurückgesetzt werden.
Verwende PARTITION BY für das Fenster. Sortiere zuerst nach region, dann nach day.
Probier es selbst
SELECT region, day, amount,
-- Füge hier die Spalte region_running_total hinzu
FROM revenue
ORDER BY region, day
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Über die Grundlagen hinaus
3Bedingte Aggregation
COUNT mit CASESUM mit CASEZeilen in Spalten umwandelnRückblick – Traffic-Quellen6Analyse-Rezepte
Top-N pro GruppeProzentualer Anteil an der GesamtsummeLaufende SummeEine Zeile pro Schlüssel behaltenRückblick – Top-KundenÜbe selbstständig: SQL-Playground