İçeriğe geç
← Ana sayfa

Öğren · Dene · Üret

SQL · Gruplama ve özet analizler: GROUP BY & COUNT — videolu atölye

Adım adım Türkçe görsel rehber. Her bölümden sonra duraklat ve kendi ortamında dene.

← Bütün video rehberler

4:35 dk · Sessiz görsel anlatım · Duraklatıp kodu veya adımı kendin dene.

Ayrıntılı yazılı rehberi aç →Resmi kaynak ↗

Bölümler

Videoyu metin olarak oku

Gruplama ve özet analizler: GROUP BY & COUNT

Tablodaki satırları ortak özelliklere göre gruplayarak COUNT, SUM, AVG gibi toplu hesaplamalar yapmak.

Kavramı kur

Tek tek satırları okumak yerine "Hangi bölümde kaç çalışan var?", "Toplam ciro ne kadar?" veya "Kategori bazında ortalama fiyat nedir?" gibi sorular için toplama (aggregate) fonksiyonları kullanılır.

Neden böyle çalışıyor?

GROUP BY, belirtilen sütundaki aynı değerlere sahip satırları tek bir grupta toplar. COUNT(*) gruptaki satır sayısını, SUM(sutun) toplamını, AVG(sutun) ortalamasını, MAX/MIN ise en büyük/en küçük değeri verir.

Çalışma sırası

AS sözcüğü ile hesaplanan yeni değere takma ad (alias) vererek sonuç tablosunda sütun başlığını anlaşılır kılabilirsin: COUNT(*) AS kisi_sayisi.

İkinci örnek · 1

FROM calisanlar tablosu taranır. Kodun tamamı yazılı derste bulunur.

SELECT bolum, COUNT(*) AS kisi_sayisi
FROM calisanlar
GROUP BY bolum;

Beklenen sonucu oku

Sonuçta her bölüm ve karşısındaki kişi sayısı listelenir.

Beklenen: bolum | kisi_sayisi Yazılım | 2 Tasarım | 1 Pazarlama | 1

Bir değeri sen değiştir

Her bölümün ortalama maaşını (AVG(maas)) hesaplayan sorgu yaz. Tüm şirketteki toplam maaş giderini hesaplamak için GROUP BY olmadan SUM(maas) çalıştır.

Hata nereden gelir?

SELECT listesinde toplama fonksiyonu olmayan sütunları GROUP BY içine eklemeyi unutmak hataya yol açar.

Kendi çözümünü kur

Her bölümdeki en yüksek maaşı MAX(maas) ile bul. Ortalama için AVG(maas), takma ad için AS ortalama_maas yaz.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

SELECT bolum, AVG(maas) AS ortalama_maas
FROM calisanlar
GROUP BY bolum;

Kendini kontrol et

GROUP BY bolum sorgusunda SELECT ad, bolum, COUNT(*) yazılırsa ne sorun oluşabilir? Yanıt: ad sütunu gruplanmadığı ve toplama fonksiyonuna alınmadığı için hangi çalışanın adının basılacağı belirsizdir; SQL motoru hata verir.

Beklenen: bolum | ortalama_maas Yazılım | 61500 Tasarım | 52000 Pazarlama | 48000

Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.