Problem:
Du vill ranka poster genom att hoppa över rankningspositioner efter rader som har samma rankning.
Exempel:
Vår databas har en tabell som heter championship med data i följande kolumner:id (primärnyckel), user_name och score .
| id | användarnamn | poäng |
| 111 | John | 12 |
| 112 | Maria | 23 |
| 115 | Lisa | 45 |
| 120 | Alan | 23 |
| 221 | Chris | 23 |
Låt oss visa alla användares namn och deras poäng sorterade i fallande ordning och rangordnade efter poäng.
Lösning 1:
SELECT RANK() OVER(ORDER BY score DESC) AS rank_place, user_name, score FROM championship;
Den här frågan returnerar följande rankning:
| rank_place | användarnamn | poäng |
| 1 | Lisa | 45 |
| 2 | Maria | 23 |
| 2 | Alan | 23 |
| 2 | Chris | 23 |
| 5 | John | 12 |
Lägg märke till att rangnumret är från 1 till 5, sorterat efter poäng i fallande ordning.
Diskussion:
Använd RANK om du vill hoppa över rankningspositioner efter rader med samma rankning. I vårt exempel hade Mary, Alan och Chris alla samma rankning på 2. Nästa kvalificerade position är 5 (beräknat från 2 + 3 rader med samma ranking).