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 würdest in jeder Zeile die Gesamtsumme erhalten. Mit ORDER BY erweitert sich das Fenster in dieser Reihenfolge jeweils um eine Zeile, sodass jede Zeile nur sich selbst und alles davor sieht.
Füge ein PARTITION BY hinzu, um die laufende Summe pro 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 kumulativen amount für die jeweilige 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 nach region und dann nach day.
Probier es selbst
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
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