Funkcje RANK i DENSE_RANK
Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 65 z 72.
ROW_NUMBER() to jeden z typów funkcji rankingowych, a istnieją jeszcze dwa: RANK() i DENSE_RANK().
Funkcja RANK() numeruje wiersze tak jak ROW_NUMBER(), ale przypisuje identyczne numery takim samym wierszom i pomija numery. DENSE_RANK() działa podobnie do RANK(), ale nie pomija numerów.
Na przykład:
| 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 table1Zwróci to:
| 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 |
Wyjaśnienie:
ROW_NUMBER(): zawsze unikalne: 1, 2, 3, 4, 5, 6RANK():- poziom 5 (2 wiersze): oba otrzymują rangę 1
- poziom 6 (2 wiersze): oba otrzymują rangę 3 (pomija 2)
- poziom 7 (2 wiersze): oba otrzymują rangę 5 (pomija 4)
DENSE_RANK():- poziom 5 (2 wiersze): oba otrzymują rangę 1
- poziom 6 (2 wiersze): oba otrzymują rangę 2 (bez pomijania)
- poziom 7 (2 wiersze): oba otrzymują rangę 3 (bez pomijania)
Wyzwanie
ŁatwyDostępne tabele i kolumny:
medals:region,medal_color,medal_count
Utwórz zapytanie, które wyświetla region, łączną liczbę medali (sumę wszystkich medali, niezależnie od koloru) oraz dwa rodzaje rankingów:
regular_rank(z lukami) według sumy medalidense_rank(bez luk) według sumy medali
Sortuj wyniki według:
order by total_medals desc, region ascSpróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Więcej słów kluczowych
Słowo kluczowe INSłowo kluczowe BETWEENSłowo kluczowe LIKESłowo kluczowe ASPowtórzenie – modele telefonów komórkowych2Instrukcje warunkowe
Podstawy instrukcji warunkowychSłowo kluczowe ANDSłowo kluczowe ORSłowo kluczowe NOTŁączenie wielu warunkówNawiasyWartości logiczne3Określony format zwracanych danych
Wartości nullSortowanie wyników — część 1Sortowanie wyników — część 2Powtórzenie — firma zajmująca się cyberbezpieczeństwemOgraniczanie liczby rekordówPowtórzenie — fabryka pojazdów6Wyzwania na początek
Powtórka – wybory parlamentarnePowtórka – zatrzymanie przestępcy przez policjęPowtórka – pojemnik na napój w barzePowtórka – inżynier: nowe kolumny9Wiele tabel
Podstawowe JOIN — część 1Podstawowe JOIN — część 2Powtórka — JOINSamozłączeniePowtórka — samozłączenieUNIONUprość zapytania — słowo kluczowe WITHPowtórka — zapytania WITHPowtórka — wykonawca z branży nieruchomości12Funkcje okna część 2
Funkcje RANK i DENSE_RANKPowtórzenie – RANK i DENSE_RANKFunkcja NTILEFunkcje agregująceKryterium ROWS i RANGEPoćwicz samodzielnie: Edytor online SQL