Problém:
Chcete přidat pořadí pořadí do řádků po sobě, i když mají řádky stejné hodnoty.
Příklad:
Naše databáze má tabulku s názvem competition s údaji v následujících sloupcích:id (primární klíč), first_name , last_name a score .
| id | křestní_jméno | příjmení | skóre |
| 11 | Jan | Thomas | 345 |
| 14 | Marie | Johnson | 222 |
| 16 | Lisa | Hnědá | 154 |
| 23 | Alan | Blake | 222 |
| 32 | Chris | Taylor | 154 |
Zobrazme všechny podrobnosti o studentech:jejich příjmení, jméno a skóre seřazené podle score v sestupném pořadí. Nechceme přeskočit čísla pozic, pokud jsou některá skóre stejná pro více než jednoho studenta.
Řešení 1:
SELECT DENSE_RANK() OVER(ORDER BY score DESC) AS d_rank, first_name, last_name, score FROM competition;
Všimněte si, že pořadí se pohybuje od 1 do 3.
Diskuse:
Použijte DENSE_RANK pokud nechcete přeskočit pozice v pořadí po řádcích se stejnou pozicí. V našem příkladu, přestože Mary a Alan mají stejnou hodnost 2, pozice pro Lisu je 3.