Junior
SQL'de WHERE ve HAVING ifadeleri arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
WHERE satırları önce gruplandırma yapmadan filtreler. HAVING ise GROUP BY ile oluşturulan grupları, sonra filtreler.
WHERE:
- Bireysel satırlara uygulanır.
- Toplam fonksiyonları (
COUNT,SUM,AVG,MIN,MAX) kullanamaz. GROUP BY,HAVINGveSELECT'den önce çalışır.
HAVING:
- Satır gruplarına uygulanır.
- Toplam fonksiyonları kullanabilir.
WHEREveGROUP BY'den sonra, amaSELECT'den önce çalışır.
Örnek:
WHERE ile Moskova şehrindeki müşterileri bulun, ve toplam sipariş tutarları 1000'den fazla olanları seçin (HAVING).
SELECT customer_id, SUM(order_amount) -- Müşteri ID'si ve sipariş toplamını seç
FROM orders -- Siparişler tablosundan
WHERE city = 'Moskova' -- Satırları filtrele, sadece Moskova'daki siparişler
GROUP BY customer_id -- Satırları müşteri ID'sine göre grupla
HAVING SUM(order_amount) > 1000; -- Grupları filtrele, toplam sipariş tutarı 1000'den fazla olanlar