SQL HAVING Kullanımı
HAVING yapısı temelde WHERE ile aynı görevi yapmaktadır. GROUP BY ile kullanılır. Where ifadesi ile belirtilen kriter Group By uygulanmadan önce geçerli olurken, Having ifadesi ile belirtilen kriter ise group by uygulandıktan sonra ortaya çıkan verileri filtrelemek için kullanılır.

Ayrıca Where ifadesinden sonra sum, avg gibi fonksiyonlar kullanılamazken, Having ile kullanılabilir.
HAVING Kullanım Biçimi:
SELECT alan_adlari, FROM Tablo GROUP BY alan_adi HAVING alanadi operator deger
Burada operatö ile belirtilen yere =, <, >, % gibi operatörler kullanılır.
Aşağıdaki gibi tablomuz olsun.
id | Personel_adi | Sehir | Maas |
1 | Salih ESKİOĞLU | İstanbul | 2100 |
2 | Ayhan ÇETİNKAYA | Kocaeli | 2500 |
3 | Serkan ÖZGÜREL | Erzurum | 1850 |
4 | İlhan ÖZLÜ | İstanbul | 2750 |
Örnek-01:
SELECT Sehir, SUM(Maas) AS Toplam_Maas FROM Personel WHERE Maas>2000 GROUP BY Sehir
Çıktısı:
Sehir | Toplam_Maas |
İstanbul | 4850 |
Kocaeli | 2500 |
Bu örnekte WHERE kullanılarak maaşı 2000 TL den fazla olan personeller seçilmiş ve bunlar gruplanarak illere maaşları toplamları bulunmuştur. Burada göreleceği üzere WHERE ifadesi ile öncei kriteri belirttik ve tablomuzdaki bazı kayıtlar devre dışı bıraktık. Sonrada kalan kayıtları grupladık.
Örnek-02:
SELECT Sehir, SUM(Maas) AS Toplam_Maas FROM Personel WHERE Maas>2000 GROUP BY Sehir HAVING sehir like 'İ%'
Çıktısı:
Sehir | Toplam_Maas |
İstanbul | 4850 |
Bu örnek aslında birinci örneğin devamı gibidir. WHERE ile bir şart koyup kayıtları azalttıktan sonra Group By ile grupladık. Daha sonra bu gruplanmış veriye ayrı bir şart koşuyoruz. Yani illere göre maaş toplamı 2000 den büyük olan kayıtları bulup sonra bunları şehire göre grupladık ve ortaya çıkan bu kayıtlardan şehir alanı i harfi ile başlayanları seçtik.
Tepkiniz Nedir?






