Merhaba Arkadaşlar, Bu yazımızda Having kullanımından bahsedeceğiz. Data çokluyor mu diye bakmak için çok kullanır.Having Group by ile order by arasında kullanılır.Having kullanımını göstermeden önce bazı hatırlatmalar yapmak istiyorum. Where koşulunu anlatırken şunu söylemiştik grup fonksiyonları ile birlikte kullanılamaz. Bu bir grup fonksiyonu kullandığımız sorguda where kullanılamaz demek değil tabikide. Burada anlatmaya çalıştığım where ile bir koşul belirtirken bir gruba yönelik koşul belirtemezsiniz. Örnek olarak,ortalama maaşı 5 binden büyük olan departmanları görüntülemek istediğimizde Ortalama( AVG) grup fonksiyonunu where ile kullanamayız.
select department_id , Avg(salary) from employees where avg(salary) >8000 group by department_id;
Görüldüğü gibi hata alıyoruz.Şimdi Having ile avg grup fonksiyonuna koşul belirtelim ve kişilerin ortalama maaşının 5 binden fazla olduğu departmanları group by ile gruplayıp görüntüleyelim
select department_id,avg(salary) from employees group by department_id having avg(salary) > 5000;
Görüldüğü gibi departmanlar geldi. Burada gruplamak istediğimiz kolonu grup by ile gruplayıp o gruplanan kolonu ‘da Having kullanarak bir koşula göre görüntüledik.
Arkadaşlar dublicate olmayan yani tekrar etmediğini düşündüğünüz bir alan var diyelim bunu nasıl kontrol edersinizin cevanı aşağıdaki query de. Alanımız Customer_Id olsun. Aşağıdaki sorgudan dönen sonuç hangi id kaç kere cevap ettiğinin cevabı
select customer_id,count(*) from customer group by customer_id having count(*)>1
Arkadaşlar kısaca Having kullanımındanda bahsetmiş olduk. Bir sonraki yazımızda görüşmek üzere.