MSSQL komutlarından Matematik fonksiyonları başlıklı yazıdaki fonksiyonlar her satır için ayrı ayrı işlem yaparken bu başlık altında işlenen fonksiyonlar eğer gruplandırma (GROUP BY) yapılmamışsa tüm satırlar için tek bir sonuç döndürecektir.
MAX, MIN,SUM, AVG, COUNT fonksiyonları GROUP BY ve HAVING ifadeleri ile birlikte de çok sık kullanılmaktadır. Sayısal değer içeren alanlar içerisinde hesaplama ve işlem yapabilmektedir. Fonksiyonlar ile ilgili örnek sorgular aşağıdaki PERSONEL tablosu üzerinde uygulanmıştır. Personel tablosunun oluşturma ve veri girişi hazır kodlarına Personel Tablosu Oluşturma başlıklı yazıdan ulaşabilirsiniz.
MAX Fonksiyonu
Belirtilen alan içerisindeki en yüksek değeri döndürür.
Örneğin, personel tablosundaki en yüksek maaşı listeleyin.
1 | SELECT MAX(maas) AS 'En yüksek maaş' FROM personel; |
MIN Fonksiyonu
Belirtilen alan içerisindeki en düşük değeri döndürür.
Örneğin, personel tablosundaki en düşük maaşı listeleyin.
1 | SELECT MIN(maas) AS 'En düşük maaş' FROM personel; |
SUM Fonksiyonu
Belirtilen alan içerisindeki değerlerin toplamını döndürür.
Örneğin, personellerin maaş toplamlarını listeleyin.
1 | SELECT SUM(maas) AS 'Toplam maaş' FROM personel; |
AVG Fonksiyonu
Belirtilen alan içerisindeki değerlerin ortalamasını döndürür.
Örneğin, personellerin maaş ortalamasını listeleyin.
1 | SELECT AVG(maas) AS 'Ortalama maaş' FROM personel; |
COUNT Fonksiyonu
Belirtilen şartlara göre listelenen satır sayısını döndürür.
Örneğin, toplam personel sayısını listeleyin.
1 | SELECT COUNT(*) AS 'Personel Sayısı' FROM personel; |
Örneğin, Şirkette çalışan kadın personellerin sayısını listeleyin.
1 | SELECT COUNT(*) AS 'Kadın Personel Sayısı' FROM personel WHERE cinsiyet='K'; |
Örneğin, 2000 ile 2005 yılları arasında işe başlayan kişilerin sayısını listeleyin.
1 2 | SELECT COUNT(*) AS 'Personel Sayısı' FROM personel WHERE ise_baslama_tarihi BETWEEN '2000.01.01' AND '2005.12.31'; |
Örneğin, 3500TL’den yüksek maaş alan erkek personellerin sayısını listeleyin.
1 2 | SELECT COUNT(*) AS 'Kadın Personel Sayısı' FROM personel WHERE maas>3500 AND cinsiyet='E'; |
MAX, MIN, SUM, AVG ve COUNT fonksiyonları istenilen şart aynı olduğunda tek bir sorgu içinde de kullanılabilir.
Örneğin, personel tablosundaki tüm personellerin sayısını, maaş toplamlarını ve ortalamalarını listeleyin.
1 2 | SELECT COUNT(*) AS 'Personel Sayısı', SUM(maas) AS 'Toplam Maaş', AVG(maas) AS 'Ortalama Maaş' FROM personel; |
Örneğin, 2000TL ve 2000TL’den yüksek alan kadın personellerin aldığı en yüksek maaşı, en düşük maaşı ve maaş ortalamalarını listeleleyin.
1 2 | SELECT MAX(maas) AS 'En Yüksek Maaş', MIN(maas) AS 'En Düşük Maaş', AVG(maas) AS 'Ortalama Maaş' FROM personel WHERE maas>=2000 AND cinsiyet='K'; |
Örneğin, bugün işe başlayan personellerin sayısını ve toplam maaşlarını listeleyin. (NOT: Bu örnek için Personel tablosuna bugün işe başlayan yeni bir personel eklenmelidir.)
1 2 | SELECT COUNT(*) AS 'Personel Sayısı', SUM(maas) AS 'Toplam maaş' FROM personel WHERE ise_baslama_tarihi=CONVERT(DATE, GETDATE()); |