SQL - Group By - Verileri Gruplama

Verileri Gruplayarak Gösterme - Group By Komutu

GROUP BY komutu belirtilen alandaki değerleri gruplandırarak, her grup için istenen bilgiyi elde etmemizi sağlar.

Örneğin bir tablodaki dgYeri alanında, hangi şehrin kaç kez geçtiğini bulmak istersek şu sorguyu kullanabiliriz. 

SELECT dgYeri, COUNT(*) FROM Ogrenci GROUP BY dgYeri;

Yukarıdaki örnekte ogrenci tablosundaki kayıtlar dgYeri alanına göre gruplandırılmış ve her gruptaki kayıt sayısı elde edilmiştir.

Grup işlemlerinin uygulanması sırasında birtakım sınırlamalar gerekebilir. Grup koşulları belirlenirken HAVING sözcüğü kullanılarak sadece istenilen yani bir şarta uyan grupların gösterilmesini sağlayabiliriz. HAVING sözcüğü gruplama yaptıktan sonra yazılır. 

Kayıtlar GROUP BY ile gruplandırılır ardından HAVING ile belirtilen şarta uyan gruplar listelenir.

SELECT dgYeri, COUNT(*)

FROM Ogrenci

GROUP BY dgYeri

HAVING count(dgYeri)>=2;

Yukarıdaki örnekte öğrenciler yine doğum yerine göre gruplandırılmış fakat kayıt sayısı 2'den fazla olan grupların gösterilmesi sağlanmıştır.

WHERE ifadesi ise kayıtlara yani satırlara filtre uygulayarak, istenen kritere uymayan satırları sonuçlara dahil etmez. Where ifadesi Group By ifadesinden önce kullanılmalıdır.

Özet olarak Group By kullanılan bir sorguda Where ifadesi de kullanılacaksa Group By ifadesinden önce kullanılmalıdır çünkü önce kayıtlar filtrelenmeli ki kalan kayıtlar ile gruplama yapılabilsin. Having ise grupları filtreleyeceği için gruplama işlemi yapıldıktan sonra yazılmalıdır.

Order By ifadesi ise en sonda kullanılarak sıralama yapılabilir.

SELECT dgYeri, COUNT(*)

FROM Ogrenci

WHERE cinsiyet='E'

GROUP BY dgYeri

HAVING count(dgYeri)>=2;

Yukarıdaki örnekte cinsiyeti "E" olan kayıtların dgYeri alanına göre gruplandırılması sağlanmış, HAVING count(dgYeri)>=2 ifadesi ile 2'den az geçen doğum yerlerinin listelenmemesi sağlanmıştır.

sql group by kullanımı, sql verileri gruplama, grup ortalaması, grup toplaması, grubun toplamı, group by

KONU İLE İLGİLİ ÖRNEKLER

Bu konu ile ilgili örnek bulunmamaktadır.



YORUMLAR




15383  kez okundu.

Online Kullanıcı Sayısı 1221