capypad
0 Tage Serie
sql / expert
Snippet

Fensterfunktionen für deterministisches Ranking

Fensterfunktionen führen Berechnungen über eine Menge von Tabellenzeilen durch, die mit der aktuellen Zeile in Beziehung stehen. Im Gegensatz zu Aggregatfunktionen gruppieren sie Zeilen nicht in einer einzigen Ergebniszeile, wodurch die ursprünglichen Datendetails erhalten bleiben.

snippet.sql
sql
1
2
3
4
5
6
SELECT
product_id,
category,
price,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY price DESC) as rank_in_category
FROM products;
Erklärung
1
ROW_NUMBER() OVER
Weist Zeilen innerhalb einer Partition eine eindeutige fortlaufende Ganzzahl zu.
2
PARTITION BY category
Setzt die Nummerierung für jeden eindeutigen Kategoriewert zurück.
3
ORDER BY price DESC
Bestimmt die Reihenfolge der Nummerierung basierend auf dem Preis in absteigender Reihenfolge.