Aggregate ile HAVING
- SQL kursu
- Orta seviye
- Ders 32/115
- 4 dk
COUNT, SUM koşulu ile grup filtrelemeyi öğrenirsin.
Aggregate ile HAVING
HAVING ile SUM, AVG, MIN, MAX gibi agregatları denetleyebilirsin. Grup başına koşul koyar.
SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;500'den çok harcayan müşterileri verir.
orders kaynağından customer_id, SUM(amount) AS total seçilir. Satırlar customer_id değerine göre gruplanır; toplam fonksiyonları her grup için ayrı hesaplanır. HAVING SUM(amount) > 500 gruplamadan sonra çalışır ve koşulu sağlamayan grupları eler.
Aggregate ile HAVING — ayrıntı
HAVING'de agregat fonksiyonu kullanmak zorunludur. Aksi halde WHERE yeterli olurdu.
Grup sütunu üzerindeki bir koşulu (ör. category = 'Kitap') WHERE'e yazmak daha verimlidir; HAVING'i COUNT, SUM gibi toplam fonksiyonları için ayır.
Uygulama Aggregate ile HAVING
Müşteri başına toplamı SUM(amount) ile hesapla ve 500'den büyük olanları HAVING ile süz.
Başlangıç kodu
-- toplam filtre
SELECT customer_id,Örnek çözüm
SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;Beklenen çıktı
customer_id total 1 750 3 600
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aggregate ile HAVING: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
SUM |
topla |
AVG |
ortalama |
MIN |
en küçük |
MAX |
en büyük |
2 SUM ekle
SELECT customer_id, ____(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;
SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;
Açıklama: SUM(amount) her müşterinin toplam harcamasını hesaplar; HAVING 500'ün üzerindekileri bırakır.
3 HAVING'de ne kullanılır?
- Sütun adı
- JOIN
- Agregat fonksiyon Doğru cevap
- LIMIT
Açıklama: HAVING'de agregat fonksiyon kullanılır.