Problem:
Chcesz uszeregować rekordy, pomijając pozycje rankingowe po wierszach o tej samej pozycji.
Przykład:
Nasza baza danych zawiera tabelę o nazwie championship z danymi w następujących kolumnach:id (klucz podstawowy), user_name i score .
| id | nazwa_użytkownika | wynik |
| 111 | Jan | 12 |
| 112 | Maryi | 23 |
| 115 | Lisa | 45 |
| 120 | Alan | 23 |
| 221 | Chrystusa | 23 |
Wyświetlmy wszystkie nazwy użytkowników i ich wyniki posortowane w porządku malejącym i uszeregowane według wyniku.
Rozwiązanie 1:
SELECT RANK() OVER(ORDER BY score DESC) AS rank_place, user_name, score FROM championship;
To zapytanie zwraca następujący ranking:
| rank_place | nazwa_użytkownika | wynik |
| 1 | Lisa | 45 |
| 2 | Maryi | 23 |
| 2 | Alan | 23 |
| 2 | Chrystusa | 23 |
| 5 | Jan | 12 |
Zauważ, że numer rangi wynosi od 1 do 5, posortowany według wyniku w kolejności malejącej.
Dyskusja:
Użyj RANK jeśli chcesz pominąć pozycje w rankingu po wierszach o tej samej pozycji. W naszym przykładzie Mary, Alan i Chris mieli ten sam ranking 2. Następna kwalifikująca się pozycja to 5 (obliczona z 2 + 3 wierszy o tej samej pozycji).