CodeBlanks Logo Icon CodeBlanks

Aggregate ile HAVING

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

query.sql
-- toplam filtre
SELECT customer_id,

Örnek çözüm

query.sql
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

Soru
SELECT customer_id, ____(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;
Cevap
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.

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