Problem:
Du vil rangere poster ved at springe rangeringspositioner over efter rækker, der har samme rangering.
Eksempel:
Vores database har en tabel ved navn championship med data i følgende kolonner:id (primær nøgle), user_name , og score .
| id | brugernavn | score |
| 111 | John | 12 |
| 112 | Mary | 23 |
| 115 | Lisa | 45 |
| 120 | Alan | 23 |
| 221 | Chris | 23 |
Lad os vise alle brugeres navne og deres score sorteret i faldende rækkefølge og rangeret efter score.
Løsning 1:
SELECT RANK() OVER(ORDER BY score DESC) AS rank_place, user_name, score FROM championship;
Denne forespørgsel returnerer følgende rangering:
| rank_place | brugernavn | score |
| 1 | Lisa | 45 |
| 2 | Mary | 23 |
| 2 | Alan | 23 |
| 2 | Chris | 23 |
| 5 | John | 12 |
Bemærk, at rangnummeret er fra 1 til 5, sorteret efter score i faldende rækkefølge.
Diskussion:
Brug RANK hvis du vil springe rangeringspositioner over efter rækker med samme rang. I vores eksempel havde Mary, Alan og Chris alle den samme placering på 2. Den næste kvalificerede placering er 5 (beregnet ud fra 2 + 3 rækker med samme rang).