SQL'de GROUP BY Kullanımı

 

Kısaca verileri gruplamak için kullanılır.

 

Genel kullanımı: SELECT alan_adi1, fonksiyon(alan_adi2) FROM tablo_adi GROUP BY (alan_adi1)

 

 

 

GROUP BY ile belirtilen sütun yada sütunlardaki aynı değere sahip satırları tek bir satırda birleştirmeyi yani gruplamayı sağlarız.

 

GROUP BY genellikle toplam fonksiyonlarıyla (Aggregate Function) kullanılır.

 

GROUP BY ile belirtilen sütunlar SELECT ifadesinde de yeralmalıdır.

 

GROUP BY sorgularında kullanılan en yaygın toplama işlevleri MIN, MAX, SUM ve COUNT'dır.

 

 

Aşağıdaki örneklerde bu tablomuzu kullanacağız.

 

 

Örnek: Çalışanların hangi ülkelerden olduğunu listeleyiniz.

 

select ulke from kisiler group by ulke

 

 

Örnek: Hangi ülkeden kaç çalışan olduğunu bulalım.

 

select ulke,COUNT(*) from kisiler group by ulke

 

 

 

 

Count ile oluşturduğumuz kolona istersek bir ad verebiliriz. As parametresi isimlendirmeye yarayan parameteremizdir.

 

 

Örnek: Ülkelere göre ortalama maaşları bulalım:

 

select ulke,avg(maas) as 'Çalışanların ortalama maaşları' from kisiler group by ulke

 

 

 

Örnek: Bay ve bayan çalışanların ortalama maaşlarını bulalım.

 

 

select cinsiyet,avg(maas) as 'Çalışanların ortalama maaşları' from kisiler group by cinsiyet

 

 

 

 

Örnek: Kayıtları önce ülkelere göre gruplayıp sonra her bir grubu kendi içinde şehirlere göre gruplayalım.

 

select ulke,sehir from kisiler group by ulke,sehir

 

Türkiye dışındaki gruplarda tek bir şehir varken, Türkiye grubunun da kendi içinde 5 gruba ayrıldığına dikkat edin

 

 

 

Örnek:Yukarıdaki sorguda her bir gruba ait kaç adet çalışan olduğunu görmek istersek.

 

 

select ulke,sehir,COUNT(*) as 'çalışan sayısı' from kisiler group by ulke,sehir

 

 

 

 

 

 

 

 

Örnek: Her ülke için bayan ve erkek çalışanların sayısını ve maaş ortalamalarını bulalım.

 

select ulke,cinsiyet,avg(maas) as 'ortalama maaş' from kisiler group by ulke,cinsiyet

 

 

 

 

 

Örnek: Yine Her ülke için bayan ve erkek çalışanların sayısını ve maaş ortalamalarını bulalım ama maaş 2000 üzerinde olanlar için uygulayalım.

 

select ulke,cinsiyet,avg(maas) as 'ortalama maaş' from kisiler
where maas>2000 group by ulke,cinsiyet

 

 

 

 

 

Bir sonraki ders: 2.11. Having Parametresinin Kullanımı

 

 

 

 

 

 

 

 

 

 

 

 

 

Web hosting by Somee.com