CASE ve aggregate
- SQL kursu
- Orta seviye
- Ders 69/115
- 4 dk
CASE'i aggregate içinde kullanmayı öğrenirsin.
CASE ve aggregate
CASE'i aggregate içinde kullanarak koşullu sayım yapabilirsin. SUM(CASE WHEN ... THEN 1 ELSE 0 END).
SELECT category,
SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category;Bu sorgu her kategoride stokta olan ürün sayısını verir.
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.
CASE ve aggregate — ayrıntı
CASE ile 1/0 üretip SUM ile toplarsın. Bu yöntem koşullu sayım için yaygındır.
Örneğin SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) her kategoride stokta olan ürün sayısını tek sorguda verir.
Uygulama CASE ve aggregate
Her kategoride stokta olan ürün sayısını SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) ile bul.
Başlangıç kodu
-- koşullu say
SELECT category,Örnek çözüm
SELECT category,
SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category;Beklenen çıktı
category in_stock Kitap 5 Elektronik 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 SUM ekle
SELECT category,
____(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category;
SELECT category,
SUM(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category;
Açıklama: CASE stokta olanlara 1 verir; SUM bunları toplayıp her kategoride stokta olan ürün sayısını bulur.
2 CASE ve aggregate: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
SUM(CASE) |
koşullu say |
WHEN |
koşul |
THEN 1 |
say |
ELSE 0 |
sayma |
3 Koşullu sayım neyle yapılır?
- MIN + HAVING
- COUNT + WHERE
- AVG + GROUP BY
- SUM + CASE Doğru cevap
Açıklama: SUM ve CASE ile koşullu sayım yapılır.