Mövzunu Açan
#0
SQL dilinde sıralama ve derecelendirme işlemleri için kullanılan fonksiyonlar, veri analizi ve raporlama süreçlerinde oldukça önemlidir. Bu fonksiyonlar, veritabanındaki kayıtları belirli bir kritere göre sıralayarak, her bir kayda bir sıralama numarası atar. Bu yazıda, en yaygın kullanılan sıralama fonksiyonları olan
1. ROW_NUMBER()
Yukarıdaki sorgu, öğrencileri notlarına göre azalan sırada sıralar ve her birine bir sıra numarası atar.
2. RANK()
Eğer iki öğrenci 90 not alırsa, her ikisi de birinci olarak sıralanır ve üçüncü sıradaki öğrencinin notu 89 olursa, onun sıralama numarası 3 olacaktır.
3. DENSE_RANK()
Bu işlev, sıralama yapılırken arada boşluk bırakmadan devam eden bir sıralama sağlamak için idealdir.
SQL sıralama fonksiyonları, veri setleri üzerinde analiz yaparken büyük kolaylık sağlar. Bu fonksiyonlar sayesinde, belirli bir kritere göre gruplama ve sıralama işlemlerini etkili bir şekilde gerçekleştirmek mümkündür. Sıralama fonksiyonlarının doğru kullanımı, veri analizi ve raporlama süreçlerinde elde edilen çıktının kalitesini artırır.
ROW_NUMBER(), RANK(), ve DENSE_RANK() fonksiyonlarını detaylı bir şekilde inceleyeceğiz.1. ROW_NUMBER()
ROW_NUMBER() fonksiyonu, belirli bir sıralama kriterine göre her bir kayda benzersiz bir satır numarası atar. Bu fonksiyon, genellikle sonuç kümesindeki belirli bir sırayı takip etmek için kullanılır. Örneğin, bir öğrencinin notlarını sıralamak istiyorsanız:CODE
1234567
SELECT
student_id,
grade,
ROW_NUMBER() OVER (ORDER BY grade DESC) AS rank
FROM
students;
Yukarıdaki sorgu, öğrencileri notlarına göre azalan sırada sıralar ve her birine bir sıra numarası atar.
2. RANK()
RANK() fonksiyonu, aynı değere sahip olan kayıtlara aynı sıralama numarasını atar ancak sonraki kayıtlara atanan sıra numarasını atlamakta. Örneğin, iki öğrencinin notu eşitse her ikisine de aynı sıralama numarası verilir, ancak bir sonraki öğrenci bir sayı atlatarak sıralanır:CODE
1234567
SELECT
student_id,
grade,
RANK() OVER (ORDER BY grade DESC) AS rank
FROM
students;
Eğer iki öğrenci 90 not alırsa, her ikisi de birinci olarak sıralanır ve üçüncü sıradaki öğrencinin notu 89 olursa, onun sıralama numarası 3 olacaktır.
3. DENSE_RANK()
DENSE_RANK() fonksiyonu ise, benzer şekilde aynı değere sahip olan kayıtlar için aynı sıralama numarasını verir, ancak sıralama atlamaz. Yukarıdaki örnek üzerinden gidersek, iki öğrenci 90 not alıyorsa, her ikisi de birinci olarak sıralanır, ancak sonraki öğrenci 2. sırada yer alır:CODE
1234567
SELECT
student_id,
grade,
DENSE_RANK() OVER (ORDER BY grade DESC) AS rank
FROM
students;
Bu işlev, sıralama yapılırken arada boşluk bırakmadan devam eden bir sıralama sağlamak için idealdir.
SQL sıralama fonksiyonları, veri setleri üzerinde analiz yaparken büyük kolaylık sağlar. Bu fonksiyonlar sayesinde, belirli bir kritere göre gruplama ve sıralama işlemlerini etkili bir şekilde gerçekleştirmek mümkündür. Sıralama fonksiyonlarının doğru kullanımı, veri analizi ve raporlama süreçlerinde elde edilen çıktının kalitesini artırır.