Middle
RANK və DENSE_RANK arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
RANK və DENSE_RANK SQL-də pəncərə funksiyalarıdır və pəncərədəki sətirlərə sıralar təyin edir, lakin bərabər dəyərlər (yəni, bərabərlik) halında davranışları fərqlidir.
-
RANK(): Eyni dəyərlərə eyni sıralama verir, lakin növbəti sıraları atlayır. Məsələn, iki sətir birinci yeri bölüşürsə, hər ikisi 1-ci sıralama alır və növbəti sətir 3-cü sıralama alır (2 atlanır).
-
DENSE_RANK(): Eyni dəyərlərə eyni sıralama verir, lakin sıraları atlamır. Eyni nümunədə, iki sətir 1-ci sıralamada, növbəti 2-ci sıralama alır.
Nümunə:
| Dəyər | RANK() | DENSE_RANK() |
|---|---|---|
| 100 | 1 | 1 |
| 100 | 1 | 1 |
| 90 | 3 | 2 |
| 80 | 4 | 3 |
Beləliklə, DENSE_RANK() sıx sıralar verir, RANK() isə bərabərlikdə boşluqları nəzərə alır.