GROUP BY Nedir?
Yayın: · Son güncelleme:
GROUP BY Nedir? Kısaca
GROUP BY, SQL'de aynı değere sahip satırları gruplara ayıran ve her grup için COUNT, SUM, AVG gibi toplama fonksiyonlarıyla özet değer hesaplamayı sağlayan ifadedir. Excel'deki özet tabloya benzer iş görür.

GROUP BY nedir?
GROUP BY, satırları belirttiğiniz sütunun değerine göre gruplayan SQL ifadesidir. Her grup sonuçta tek satıra iner. Bu satırda gruplama sütunu ile birlikte toplama fonksiyonlarının sonucu yer alır.
Excel kullananlar için en yakın benzetme özet tablodur (pivot table). "Şehir başına toplam satış" ya da "kategori başına ürün sayısı" gibi sorular GROUP BY ile cevaplanır.
Nasıl kullanılır?
Varsayımsal bir satış tablosunda her şehrin toplam cirosunu görmek için:
SELECT sehir, COUNT(*) AS siparis_sayisi, SUM(tutar) AS ciro
FROM siparisler
GROUP BY sehir;
Tabloda 10.000 sipariş satırı varsa ve siparişler 12 şehirden geliyorsa, sonuç 12 satır olur. Her satırda şehir adı, sipariş sayısı ve toplam ciro görünür.
En sık kullanılan toplama fonksiyonları COUNT (sayı), SUM (toplam), AVG (ortalama), MIN ve MAX'tır.
HAVING ile farkı
WHERE gruplamadan önce satırları süzer, HAVING ise gruplamadan sonra grupları süzer. Cirosu 50.000 TL'yi geçen şehirleri görmek için sorgunun sonuna HAVING SUM(tutar) > 50000 eklenir. Bu koşulu WHERE'e yazmaya çalışmak hata verir, çünkü toplam henüz hesaplanmamıştır.
Sık yapılan hatalar
SELECT'te yer alıp GROUP BY'da bulunmayan ve bir toplama fonksiyonunun içinde olmayan sütunlar hata üretir. Bazı veritabanları bu durumda rastgele bir değer döndürür ve yanlış rapor fark edilmeden kullanılabilir. Raporları hazırlarken NULL değerlerin ayrı bir grup oluşturduğunu da hesaba katın.
Sıkça Sorulan Sorular
GROUP BY ne demek, Türkçesi nedir?
GROUP BY, "gruba göre" ya da "şuna göre grupla" anlamına gelir. Türkçe kaynaklarda gruplama ifadesi olarak da anılır, ancak SQL'de komut İngilizce yazılır.
Birden fazla sütuna göre gruplama yapılabilir mi?
Evet. GROUP BY sehir, yil yazdığınızda her şehir ve yıl kombinasyonu ayrı bir grup olur. Bu, yıllara göre şehir bazlı karşılaştırma için kullanışlıdır.