MsSql Grup fonksiyonları

MsSql Bazı Grup Fonksiyonlarını göreceğiz...

Merhaba Arkadaşlar,

Bu makalemizde Aggregate şeklinde isimlendirilen Gruplama Fonksiyonlarının bir kısmını göreceğiz. Öncelikle göreceğimiz fonksiyonların bir listesini ekliyorum aşağıya:

- AVG
- COUNT
- MAX
- MIN
- SUM


Şimdi sıra ile başlayalım.

AVG :
Bir grup kayıt içerisindeki değerlerin ortalamasını döndürür.Peki hangi kolona göre nasıl çeker bu ortalamayı?
Tabii ki sizin seçtiğiniz,ancak sayısal değer taşıyan,herhangi bir kolona göre olabilir bu.Örnek:

Select AVG(yas) From Ogrenciler
dediğimiz zaman Ogrenciler tablosunda kayıtlı öğrencilerin yaş ortalamasını hesaplar.

COUNT:
Tablodaki kayıt sayısını çeker.Bu fonksiyonda dikkat etmemiz gereken 2 husus vardır. Genel kullanımını aşağıdaki örnekte inceledikten sonra bu hususları açıklayacağım. Örnek:

Select COUNT(*) From Ogrenciler
Yukarıdaki satırda Ogrenciler tablosundaki tüm kayıtları sayar ve sayısını ekrana verir;Ancak bu sorguyu aşağıdaki şekilde de kullanabilirdik:

Select COUNT(Ad) From Ogrenciler
Şimdi bu durumda bahsettiğimiz hususlardan biri ile karşılaşabiliriz. Şöyle ki, Kayıtlar içerisinde Ad alanı NULL olan bir kayıt olduğu takdirde bu kayıt sayılmayacaktır.

Bu nedenle böyle bir durum ile karşı karşıya kalmamak için ya COUNT(*) ya da NULL olmayacağı kesin olan bir alan ile çağırın.

* ile çağırmak daha garanti olsa da performans açısından bir alan adı ile çağırmak daha uygundur.

Bir diğer husus ise Alan adı ile çağırdığımızda tekrarların sayılıp sayılmayacağı konusu.Misal benim tablomda (Ad alanına göre) 2 adet Mesut,3 adet Murat,1 adet Filiz varsa.Ve ben aşağıdaki sorgu ile çekersem:

Select COUNT(Ad) From Ogrenciler
Sonuç : 6 olacaktır.Evet doğru sonuç da bu zaten.Ama ben kaç tane tekil isim olduğunu öğrenmek istiyorsam ne olacak.Bu durumda devreye DISTINCT özelliği giriyor devreye.

Select COUNT(DISTINCT Ad) From Ogrenciler
şeklinde çağırmam durumunda Sonuç : 3 olacaktır.

MAX - MIN :
Tablodaki kayıtlar içerisinde seçilen değere(alan) göre en büyük ve en küçük değerleri döndürürler.Örnek:

Select MAX(yas) From Ogrenciler
Select MIN(yas) From Ogrenciler


SUM :
Tablodaki kayıtların seçilen alan bazında toplamlarını verir.Seçilen alanın sayısal olması koşulu ile. Örnek:
select SUM(yas) From Ogrenciler

Bu fonksiyonların daha karmaşık kullanımı tabii ki mevcut.Ben daha çok temel kullanımlarını verdim,siz ihtiyacınız doğrultusunda geliştireceksiniz.

Örnek MAX fonksiyonu için düşünürsek.Ogrenciler tablomuz için Maximum yaşa sahip olan öğrencinin tüm bilgilerini çekmek için aşağıdaki şekilde bir sorgu kombinasyonu yapmamız gerekecek.

Select * From Ogrenciler where yas in(Select MAX(yas) From Ogrenciler)

Gördüğünüz gibi ufak bir sorgu kombinasyonu,daha karmaşık projelerde daha karmaşık sorgular kullanmanız dileğiyle :)

Herkese iyi çalışmalar...

  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git