CodeBlanks Logo Icon CodeBlanks

HAVING ve WHERE

HAVING ile WHERE farkını öğrenirsin.

HAVING ve WHERE

WHERE satırları, HAVING grupları süzer. İkisi aynı sorguda birlikte kullanılabilir.

SELECT category, SUM(price)
FROM products
WHERE price > 10
GROUP BY category
HAVING SUM(price) > 100;

10'dan pahalı ürünlerin kategori toplamı 100'ü geçenleri verir.

products kaynağından category, SUM(price) seçilir. WHERE price > 10 koşulunu sağlamayan satırlar elenir. Satırlar category değerine göre gruplanır; toplam fonksiyonları her grup için ayrı hesaplanır. HAVING SUM(price) > 100 gruplamadan sonra çalışır ve koşulu sağlamayan grupları eler.

HAVING ve WHERE — ayrıntı

WHERE GROUP BY'dan önce satırları daraltır; HAVING gruplar oluştuktan sonra onları süzer.

Örneğin WHERE price > 10 ucuz ürünleri hesaba katmaz, ardından HAVING SUM(price) > 100 toplamı yüksek kategorileri seçer.

Uygulama HAVING ve WHERE

Fiyatı 10'dan büyük ürünleri WHERE ile seç, kategori toplamı 100'den büyük olanları HAVING ile süz.

Başlangıç kodu

query.sql
-- satır ve grup filtre
SELECT category, SUM(price)
FROM products

Örnek çözüm

query.sql
SELECT category, SUM(price)
FROM products
WHERE price > 10
GROUP BY category
HAVING SUM(price) > 100;

Beklenen çıktı

category  sum
Elektronik 250

Soru ve cevaplar

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

1 WHERE ekle

Soru
SELECT category, SUM(price)
FROM products
____ price > 10
GROUP BY category
HAVING SUM(price) > 100;
Cevap
SELECT category, SUM(price)
FROM products
WHERE price > 10
GROUP BY category
HAVING SUM(price) > 100;

Açıklama: WHERE gruplamadan önce satırları süzer; HAVING ise gruplardan sonra çalışır.

2 WHERE ne zaman çalışır?

  • GROUP BY'dan sonra
  • GROUP BY'dan önce Doğru cevap
  • HAVING'den sonra
  • En son

Açıklama: WHERE GROUP BY'dan önce çalışır.

3 HAVING ve WHERE: kavramları eşleştir

Kavram Anlamı
WHERE satır
HAVING grup
GROUP BY grupla
SUM topla

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