CodeBlanks Logo Icon CodeBlanks

Aggregate analizi

GROUP BY, HAVING ve CASE ile analiz yap

Aggregate analizi

Bu meydan okumada GROUP BY, HAVING ve CASE ile kategori analizi yapacaksın.

SELECT category,
  SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category
HAVING SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) > 2;

Bu sorgu stokta 2'den çok ürünü olan kategoriler.

products kaynağından category, SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS … seçilir. Satırlar category değerine göre gruplanır; toplam fonksiyonları her grup için ayrı hesaplanır. HAVING SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) > 2 gruplamadan sonra çalışır ve koşulu sağlamayan grupları eler.

Uygulama Aggregate analizi

Kategori başına stokta olan ürün sayısını CASE ve SUM ile bul, HAVING ile 2'den büyük olanları süz.

Başlangıç kodu

query.sql
-- aggregate analizi
SELECT category,
  SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category

Örnek çözüm

query.sql
SELECT category,
  SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category
HAVING SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) > 2;

Beklenen çıktı

category  in_stock
Elektronik 3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Aggregate analizi: kavramları eşleştir

Kavram Anlamı
GROUP BY grupla
HAVING süz
CASE koşul
SUM topla

2 Grup filtresi neyle?

  • LIMIT
  • WHERE
  • DISTINCT
  • HAVING Doğru cevap

Açıklama: HAVING grupları filtreler.

Orta seviye bölümündeki tüm dersler