HAVING ve WHERE
- SQL kursu
- Orta seviye
- Ders 31/115
- 4 dk
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
-- satır ve grup filtre
SELECT category, SUM(price)
FROM productsÖrnek çözüm
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
SELECT category, SUM(price)
FROM products
____ price > 10
GROUP BY category
HAVING SUM(price) > 100;
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 |