MsSql Grup fonksiyonları

CourierC

Kıdemli Üye
16 Ağu 2010
2,655
0
C:\Windows
Merhaba Arkadaşlar,

Bu konumda sizleree Aggregate şeklinde isimlendirilen Gruplama Fonksiyonlarının bir kısmını göstereceğim. Ö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:

Kod:
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:

Kod:
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:

Kod:
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:

Kod:
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.

Kod:
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:

Kod:
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:
Kod:
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.

Kod:
Select * From Ogrenciler where yas in(Select MAX(yas) From Ogrenciler)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.