Sql Partition By Nedir ? Nasıl Kullanılır ? Sql Over

Sql Serverda Over kavramı nedir nasıl kullanılır ? Partition By nasıl kullanılır ? Sqlde Satır numaraları nasıl elde edilir ?

Sqlde Satır numarası elde etmek için , veya bir sorgu içerisinde doğrudan sütun alanlarında bir gruplamaya bağlı hesaplama yapmak istediğimizde karşılaşacağımız ifade Over ifadesidir. Group By ile yapılamaz mı evet yapılabilir ancak işlemi şu açıdan düşünmek gerekir sorgu yüzlerce satır olabilir veya kolon sayıları yüzlerce olabilir bu gibi durumda sadece bir alana toplam aldırmak için geri kalan 99 kolonu group by da mı kullanmak gerekecek ? bu gibi durumlarda partition by ifadesiyle sadece gruplanacak kolon üzerinde işlem yapılır ve sorgunun bütünlüğü ve yapısı bozulmadan işlemler edevam edilir.

Bir diğer anlam yüklemek gerekir ise satır bazında gruplama yapmak için kullanılır da diyebiliriz.

 

[Fonksiyon()] OVER (PARTITION BY [Gruplanacak İfade] ORDER BY [Sıralanacak İfade] DESC)

En temel kullanımı bu şekildedir.
Satır Numaralarını elde etmek için aşağıdaki gibi bir kullanım işinizi görecektir.

SELECT UyeID, COUNT(*) AS Adet,
ROW_NUMBER() OVER(ORDER BY COUNT(*) DESC) AS “Satir Numarası”
FROM Uyeler

Benzer şekilde sorguda sadece kolonda bir gruplama işlemine bağlı bir hareket yapmak isterseniz aşağıdaki gibi bir kullanımda yapabilirsiniz.

SUM([Toplanacak Kolon]) OVER(PARTITION BY [Gruplanacak Kolon]) AS “Kolon Başlığı”

 

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.