CodeBlanks Logo Icon CodeBlanks

CASE ve aggregate

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

query.sql
-- koşullu say
SELECT 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;

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

Soru
SELECT category,
  ____(CASE WHEN stock > 0 THEN 1 ELSE 0 END) AS in_stock
FROM products
GROUP BY category;
Cevap
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.

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