Aggregate Fonksiyonları: COUNT, SUM, AVG Kullanırken GROUP BY Unutulması

Aggregate fonksiyonları (COUNT, SUM, AVG) verileri toplar ve özetler. Ancak birden fazla satırdan veri toplarken GROUP BY kullanmadığında hata alırsın veya yanlış sonuç elde edersin.

Örneğin satış tablosunda her ürün kategorisinin toplam satışını görmek istiyorsun. Ama GROUP BY'ı unutuyorsun:

1SELECT kategori, SUM(satış)
2FROM satislar;

Hata: "GROUP BY hataası" alırsın veya veritabanı kategorisiz tüm satışları toplar.

Aggregate fonksiyonunun yanına GROUP BY ekle:

1SELECT kategori, SUM(satış)
2FROM satislar
3GROUP BY kategori;

Çıktı:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1kategori | SUM(satış)
2------------|----------
3Elektronik | 5000
4Giyim | 3200
5Gıda | 1800
  1. GROUP BY olmadan: Tüm satırlar tek bir gruba girer, sonuç tek satır olur.
  2. GROUP BY ile: Satırlar kategoriye göre gruplandırılır, her grup ayrı hesaplanır.

Her kategoride kaç ürün var?

1SELECT kategori, COUNT(*) as urun_sayisi
2FROM urunler
3GROUP BY kategori;

Çıktı:

1kategori | urun_sayisi
2------------|----------
3Elektronik | 15
4Giyim | 8
5Gıda | 12

Her kategorinin ortalama fiyatı:

1SELECT kategori, AVG(fiyat) as ortalama_fiyat
2FROM urunler
3GROUP BY kategori;

Çıktı:

1kategori | ortalama_fiyat
2------------|----------
3Elektronik | 2500.50
4Giyim | 150.25
5Gıda | 45.75

Eğer kategoriye ve markaya göre gruplandırmak istersen:

1SELECT kategori, marka, SUM(satış)
2FROM satislar
3GROUP BY kategori, marka;
  • Aggregate fonksiyon (COUNT, SUM, AVG) kullandığında, SELECT'teki diğer sütunlar mutlaka GROUP BY'da olmalı.
  • GROUP BY olmadan tek bir sonuç alırsın.
  • GROUP BY ile her grup için ayrı hesaplama yapılır.
Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz

5 yorum

  • adlı kullanıcıya yanıt verdi
    papatyasuyu

    ya bende de böyle oluyor özellikle birden fazla tablo join ettikten sonra GROUP BYı

  • adlı kullanıcıya yanıt verdi
    sokaklambasi

    en kötüsü de bu hatayı bulması bayağı zaman alıyor bazen özellikle karmaşık sorgularda fark etmiyorsun hemen

  • sokaklambasi

    Veri tabanında çalışırken bu çok sık yapılan bir hata gerçekten GROUP BYı unutunca ya

  • adlı kullanıcıya yanıt verdi
    sokaklambasi

    joinden sonra GROUP BYı unuttukça sanki sorgu çalışıyor ama sonuçlar bambaşka çıkıyor

  • adlı kullanıcıya yanıt verdi
    papatyasuyu

    İzmirde yazılım işi yapan biri olarak söyleyeyim bu hata benim de başıma geldi Özellikle