GROUP BY, SQL'de satırları ortak bir değere göre gruplayıp her grup için özet hesaplaman sağlar. Genelde COUNT, SUM, AVG gibi toplama fonksiyonlarıyla birlikte kullanılır.
Örnek tablo: siparisler
SELECT sehir, COUNT(*) AS adet
FROM siparisler
GROUP BY sehir;
Bu sorgu her şehir için kaç sipariş olduğunu döndürür.
Toplam ve ortalama
SELECT sehir, SUM(tutar) AS toplam, AVG(tutar) AS ortalama
FROM siparisler
GROUP BY sehir;
HAVING ile grup filtreleme
WHERE satırları filtreler; grupları filtrelemek için HAVING kullanılır:
SELECT sehir, COUNT(*) AS adet
FROM siparisler
GROUP BY sehir
HAVING COUNT(*) > 10;
Bu, yalnızca 10'dan fazla siparişi olan şehirleri gösterir. Kural: SELECT içinde topladığın dışındaki her sütun GROUP BY'da yer almalıdır.