Direkt zum Hauptinhalt springen
eLearner.app
Modul 13 · Lektion 3 von 451/57 im Kurs~15 min
Lektionen des Moduls (3/4)

Rankings: ROW_NUMBER, RANK und DENSE_RANK

Rankings: ROW_NUMBER, RANK und DENSE_RANK

Über die Aggregation hinaus glänzen Fensterfunktionen bei der Reihenfolge und Rangfolge. Es gibt Funktionen, die speziell für die Arbeit innerhalb von Fenstern entwickelt wurden (OVER() wird obligatorisch), die fortlaufende Nummern oder Rangfolgepositionen zuweisen.

Damit sie gegen ein Kriterium arbeiten, müssen wir die ORDER BY-Klausel in OVER() verwenden.

Das Ranking-Trio

  1. ROW_NUMBER(): Weist jeder Zeile eine einfache fortlaufende Nummer (1, 2, 3...) zu und bricht Verbindungen willkürlich auf.
  2. RANK(): Erzeugt den „Olympia“-Effekt: 1, 2, 2, 4. Es bleibt eine Lücke (die „3“ wird übersprungen) und weist bei Gleichstand den gleichen Rang zu.
  3. DENSE_RANK(): Verdichtet die Ränge: 1, 2, 2, 3. Nach einem Unentschieden entsteht nie eine Lücke.
SQL
SELECT
  product_name,
  price,
  RANK() OVER(ORDER BY price DESC) AS price_rank
FROM products;

Durch die Kombination von PARTITION BY und ORDER BY in OVER() können wir „die Top 3 für jede Kategorie“ erhalten!

Übung#sql.m13.l3.e1
Versuche: 0Wird geladen…

Extrahieren Sie „Vorname“, „Nachname“ und „ID“ aus der Kundentabelle („Kunden“) (angenommen, „ID“ ist die Identifikationsnummer). Fügen Sie mit DENSE_RANK() eine „Rang“-Spalte hinzu, basierend auf der „id“ absteigend (vom höchsten zum niedrigsten).

Editor wird geladen…
Hinweis anzeigen

DENSE_RANK() OVER(ORDER BY id DESC).

Lösung nach 3 Versuchen verfügbar

Übung#sql.m13.l3.e2
Versuche: 0Wird geladen…

Erstellen Sie für jede „category_id“ ein Ranking basierend auf dem Preis der Produkte („products“). Extrahieren Sie „category_id“, „id“, „price“ und fügen Sie „price_rank“ mit ROW_NUMBER() in absteigender „price“-Reihenfolge und Partitionierung nach „category_id“ hinzu.

Editor wird geladen…
Hinweis anzeigen

Kombinieren Sie PARTITION BY Category_id ORDER BY Price DESC innerhalb des OVER.

Lösung nach 3 Versuchen verfügbar