Middle
Kāda ir atšķirība starp RANK un DENSE_RANK?
sobes.tech AI
Atbilde no AI
RANK un DENSE_RANK ir ir funkcijas SQL logā, kas piešķir rindu kārtību loga ietvaros, bet atšķiras to uzvedībā, ja ir vienādas vērtības (t.i., neizšķirti).
-
RANK(): Piešķir vienādu kārtību vienādām vērtībām, bet izlaiž nākamos kārtības numurus. Piemēram, ja divas rindas dalās pirmajā vietā, abas saņem kārtību 1, bet nākamā rinda saņem kārtību 3 (izlaižot 2).
-
DENSE_RANK(): Arī piešķir vienādu kārtību vienādām vērtībām, bet neizlaiž kārtības numurus. Tajā pašā piemērā, divas rindas ar kārtību 1, nākamā saņem kārtību 2.
Piemērs:
| Vērtība | RANK() | DENSE_RANK() |
|---|---|---|
| 100 | 1 | 1 |
| 100 | 1 | 1 |
| 90 | 3 | 2 |
| 80 | 4 | 3 |
Tādējādi, DENSE_RANK() sniedz blīvus kārtības numurus bez tukšumiem, bet RANK() ņem vērā tukšumus, ja ir vienādas vērtības.