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
1
2
3
4
5
6
SELECTproduct_id,category,price,ROW_NUMBER() OVER (PARTITION BY category ORDER BY price DESC) as rank_in_categoryFROM 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.