Tags

, , , ,

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;
where ile grup fonksiyonu kullanım hatası

where ile grup fonksiyonu kullanım hatası

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;
having ile avg function

having ile avg function

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.

 

Advertisements