PostgreSQL RANK Kullanımı
"RANK" fonksiyonu, PostgreSQL veritabanı sistemi içinde kullanılmak üzere tasarlanmış bir sorgu fonksiyonudur. Bu fonksiyon, verilen bir sorguda belirtilen kriterlere göre sıralanmış sonuçların sıralama sırasını döndürür.
"RANK" fonksiyonunda aynı değere sahip olan satırlar için aynı sıralama sırasını döndürür. Örneğin, "ad" alanına göre sıralanmış bir tablo içinde aynı "ad" değerine sahip olan tüm satırlar için aynı sıralama sırasını döndürecektir.
- Not: "RANK" fonksiyonunu kullanmak için, SQL sorgusunda "ORDER BY" komutunu kullanmalısınız.
Aşağıdaki örneği inceleyelim..
SELECT ad, soyad, RANK() OVER (ORDER BY ad) FROM kisiler
Bu sorgu, "kisiler" tablosunda "ad" alanına göre sıralanmış sonuçların sıralama sırasını döndürür. Sonuç şu şekilde olacaktır..
ad | soyad | RANK
-----------+--------------+------
Ahmet | Yılmaz | 1
Ahmet | Çelik | 1
Mehmet | Kaya | 2
Ali | Çelik | 3
Bu sorguda, "Ahmet" adına sahip satırlar aynı sıralama sırasına sahip olacaktır.
Ayrıca, "RANK" fonksiyonu sadece bir alana göre değil birden fazla alana göre de sıralama yapabilir. Örneğin, "ad" ve "soyad" alanlarına göre sıralama yapmak istediğimizde sorgu şöyle olacaktır..
SELECT ad, soyad, RANK() OVER (ORDER BY ad, soyad) FROM kisiler
Bu sorgu, "kisiler" tablosunda "ad" ve "soyad" alanlarına göre sıralanmış sonuçların sıralama sırasını döndürür. Sonuç şu şekilde olacaktır..
ad | soyad | RANK
-----------+--------------+------
Ahmet | Çelik | 1
Ahmet | Yılmaz | 2
Ali | Çelik | 3
Mehmet | Kaya | 4
Bu sorguda, "Ahmet" adına sahip satırların ad kolonu değeri aynı olsada soyad kolonu değeri farklı olduğu için satırlar farklı sıralama sırasına sahip olacaktır.