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:
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:
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:
Ş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:
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.
ş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:
SUM :
Tablodaki kayıtların seçilen alan bazında toplamlarını verir.Seçilen alanın sayısal olması koşulu ile. Örnek:
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.
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
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
Kod:
Select COUNT(Ad) From Ogrenciler
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
Kod:
Select COUNT(DISTINCT Ad) From Ogrenciler
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)