Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

SQL - RANK ve DENSE_RANK



  October 07, 2018    Labels:,,,,,,, 

RANK ve DENSE_RANK fonksiyonları tablolarda bulunan kayıtları sıralayarak bu kayıtların sıralamada nerede olduklarını görmemizi sağlar. RANK ve DENSE_RANK Fonksiyonları ROW_NUMBER fonksiyonuna çok benzemektedir. Farkı ROW_NUMBER ile o kaydın kaçıncı kayıt olduğunu bulurken RANK fonksiyonu ile derecesini bulabilmemizdir. Yani RANK fonksiyonu kaçıncı kayıt olduğunu değil sıralamada kaçıncı olduğunu verir. DENSE_RANK ile RANK fonksiyonları arasındaki fark ise RANK fonksiyonunda aynı dereceye sahip kayıt olduğunda sıralamada sonra gelen kayıtlar için sıra sayısı atlanırken DENSE_RANK fonksiyonunda sıralama kaldığı yerden devam eder.

Örnek:

SELECT CustomerID, COUNT(*) AS "Satış Sayısı",
RANK() OVER(ORDER BY COUNT(*) DESC) AS "Rank ile Sıralama",
ROW_NUMBER() OVER(ORDER BY COUNT(*) DESC) AS "Normal Sıralama",
DENSE_RANK() OVER(ORDER BY COUNT(*) DESC) AS "Dense_Rank ile Sıralama"
FROM Sales.SalesOrderHeader
GROUP BY CustomerID
ORDER BY COUNT(*) DESC;



Not! Görsel http://www.ismailgursoy.com.tr sitesinden alıntıdır.

No comments:

Post a Comment