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