Fensterfunktionen: OVER

Berechne über Zeilen hinweg, ohne sie zusammenzufassen. OVER legt fest, welche Zeilen betrachtet werden, ähnlich wie RANG und laufende Summen in Excel.

Syntax

ROW_NUMBER() OVER (ORDER BY column)
RANK() OVER (ORDER BY column)
SUM(column) OVER (PARTITION BY column ORDER BY column)
  • PARTITION BY startet die Berechnung für jede Gruppe neu.
  • Anders als bei GROUP BY bleibt jede Zeile im Ergebnis erhalten.

Beispiel

SELECT order_id, RANK() OVER (ORDER BY order_date) AS day_rank FROM orders;

Jede Bestellung mit ihrem Rang nach Datum. Bestellungen am selben Tag teilen sich einen Rang.

Verwendete Tabellen: orders. Probiere es unten in einer Lektion aus.

Häufige Fehler

  • ROW_NUMBER vergibt jeder Zeile eine andere Nummer; RANK vergibt Gleichständen dieselbe Nummer und überspringt die folgenden.
  • Fensterfunktionen laufen nach WHERE, daher kannst du ihre Ergebnisse nicht in WHERE verwenden. Umschließe die Abfrage mit einer Unterabfrage oder WITH, um sie zu filtern.

Übe es