SQL'de GROUP BY Having Kullanımı

 

 

Group By sözcüğü kayıtları bir alana göre gruplandırmak için kullanılır.

 

Having ise gruplandırma yaparken sorguda bir koşulun da verilmesi gerekiyorsa devreye girer.

 

Kullanılan “HAVING” yardımcı kelimesi “GROUP BY” ile gruplanan kayıtlar üzerinde kısıtlama yapar.

 

Genel kullanımı aşağıdaki şekildedir

 

SELECT alan_adlari, FROM Tablo GROUP BY alan_adi HAVING alanadi deger

 

HAVING Kullanma Kuralları

 

Select komutunda GROUP BY yoksa HAVING geçersiz olur.

HAVING sözcüğünü izleyen ifade içinde SUM, MIN, MAX, AVG, COUNT fonksiyonlarından en az biri mutlaka olmalıdır.

HAVING sözcüğü sadece ve sadece gruplanmış verilerin işlemleri için geçerlidir.

WHERE ile birlikte bir Select komutu içinde kullanılabilir.

 

 

WHERE ve HAVING arasındaki fark:

 

WHERE bir tablonun tek satırları üzerinde işlem yapan koşullar içinde geçerlidir.

HAVING gruplanmış verilerin işlemleri için geçerlidir.

 

 

 

 

 

u ö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.

 

 

 

Aşağıdaki soruların çözümü için bu tablomuzu kullanacağız.

 

 

 

Örnek: Maaşı 2500 TL den fazla olan personellerin bulunduğu illerde bu elemanların maaşları toplamlarını bulunuz?

 

Bu soruyu çözmek için ilk önce şartları yazalım.

1.cisi 2500 den fazla maaş alanların tespiti.Bunun için sorgumuz böyle olmalıdır.

 

select * from kisiler where maas>2500

 

Şimdide sorumuzun geri kalan kısmını tamamlayalım.

Burada illere göre maaş toplamı istediğine göre sum fomksiyonu ve group by kullanımı söz konusudur.

 

Sorumuzun cevabı :

 

select sehir,sum(maas) from kisiler where maas>2500 group by sehir

 

 

 

 

Örnek: Maaşı 2500 TL den fazla olan personellerin bulunduğu illerde bu elemanların maaşları toplamlarını buldurunuz ve ekrana bu şehirlerde için "i" harfi geçenleri getiriniz.

 

Bu soru yukarıdakinin devamı niteliğindedir fakat gruplanmış veriler arasında şehirlerde "i" içerenleri listeleyin denilmektedir.Burada gruplamadan sonra şart var ve bunun için having parametresine ihtiyacımız vardır.

 

 

 

 

 

Bir sonraki ders : 3.Update Kullanımı

 

 

 

Web hosting by Somee.com