Sobes.tech
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.