sql / intermediate
Snippet
Berechnung gleitender Mittelwerte mit ANSI Window Frame-Klauseln
Die ROWS BETWEEN-Klausel in Fensterfunktionen beschränkt den Berechnungsrahmen auf relative Offsets. Dies berechnet gleitende Aggregate, ohne Subqueries oder Self-Joins zu erfordern.
snippet.sql
sql
1
2
3
4
5
6
7
SELECT sale_date, amount,AVG(amount) OVER (PARTITION BY store_idORDER BY sale_dateROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avgFROM sales;
Erklärung
1
AVG(amount) OVER (
Wendet eine Aggregat-Durchschnittsfunktion auf einen dynamisch begrenzten Fensterausschnitt an.
2
PARTITION BY store_id
Gruppiert Berechnungsmengen unabhängig für jede eindeutige Filial-ID.
3
ORDER BY sale_date
Etabliert eine strikte chronologische Sortierung zur Bestimmung der Fenstergrenzen.
4
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW
Beschränkt die Berechnung strikt auf die aktuelle Zeile und ihre zwei vorangegangenen Zeilen.