Aggregate analizi
- SQL kursu
- Orta seviye
- Ders 113/115
- 6 dk
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
-- 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
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.