Middle
RANK ile DENSE_RANK arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
RANK ve DENSE_RANK, SQL'de pencere fonksiyonlarıdır ve bir pencere içindeki satırlara sıralar atar, ancak aynı değerlere sahip durumlarda (yani beraberliklerde) davranışları farklıdır.
-
RANK(): Aynı değerlere aynı sıralamayı verir, ancak sonraki sıralamaları atlar. Örneğin, iki satır birinci yeri paylaşıyorsa, her ikisi de 1. sıralamayı alır ve bir sonraki satır 3. sıralamayı alır (2 atlanır).
-
DENSE_RANK(): Aynı değerlere aynı sıralamayı verir, ancak sıralamaları atlamaz. Aynı örnekte, iki satır 1. sıralamada, bir sonraki satır 2. sıralamayı alır.
Örnek:
| Değer | RANK() | DENSE_RANK() |
|---|---|---|
| 100 | 1 | 1 |
| 100 | 1 | 1 |
| 90 | 3 | 2 |
| 80 | 4 | 3 |
Bu şekilde, DENSE_RANK() boşluk olmadan yoğun sıralar verir, RANK() ise eşitlik durumunda boşlukları dikkate alır.