RANK- & DENSE_RANK-Funktionen
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 65 von 72.
ROW_NUMBER() ist ein Typ von Rangfunktion, und es gibt zwei weitere: RANK() und DENSE_RANK().
Die Funktion RANK() nummeriert Zeilen wie ROW_NUMBER(), vergibt aber identische Nummern für gleiche Zeilen und überspringt Nummern. DENSE_RANK() ähnelt RANK(), überspringt jedoch keine Nummern.
Zum Beispiel:
| id | level |
| 1 | 5 |
| 2 | 6 |
| 3 | 6 |
| 4 | 7 |
| 5 | 7 |
| 6 | 5 |
SELECT id,
ROW_NUMBER() OVER (ORDER BY level) as row_num,
RANK() OVER (ORDER BY level) as row_rank,
DENSE_RANK() OVER (ORDER BY level) as row_dense_rank
FROM table1Dies ergibt:
| id | row_num | row_rank | row_dense_rank |
| 1 | 1 | 1 | 1 |
| 6 | 2 | 1 | 1 |
| 2 | 3 | 3 | 2 |
| 3 | 4 | 3 | 2 |
| 4 | 5 | 5 | 3 |
| 5 | 6 | 5 | 3 |
Erklärung:
ROW_NUMBER(): Immer eindeutig: 1, 2, 3, 4, 5, 6RANK():- Stufe 5 (2 Zeilen): Beide erhalten den Rang 1
- Stufe 6 (2 Zeilen): Beide erhalten den Rang 3 (überspringt 2)
- Stufe 7 (2 Zeilen): Beide erhalten den Rang 5 (überspringt 4)
DENSE_RANK():- Stufe 5 (2 Zeilen): Beide erhalten den Rang 1
- Stufe 6 (2 Zeilen): Beide erhalten den Rang 2 (kein Überspringen)
- Stufe 7 (2 Zeilen): Beide erhalten den Rang 3 (kein Überspringen)
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
medals:region,medal_color,medal_count
Erstelle eine Abfrage, die die Region, die Gesamtzahl der Medaillen (Summe aller Medaillen unabhängig von ihrer Farbe) und zwei Arten von Ranglisten anzeigt:
- Eine
regular_rank-Rangfolge (mit Lücken) über die Summe der Medaillen - Eine
dense_rank-Rangfolge (ohne Lücken) über die Summe der Medaillen
Sortiere das Ergebnis nach:
order by total_medals desc, region ascProbier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellen9Mehrere Tabellen
Grundlegender Join Teil 1Grundlegender Join Teil 2Rückblick – JoinSelf-JoinRückblick – Self-JoinUnionAbfragen vereinfachen, WITH-SchlüsselwortRückblick – WITH-AbfragenRückblick – Immobilienauftragnehmer12Fensterfunktionen Teil 2
RANK- & DENSE_RANK-FunktionenWiederholung – RANK & DENSE_RANKNTILE-FunktionAggregationsfunktionenROWS- & RANGE-KriteriumÜbe selbstständig: SQL-Playground