Sobes.tech
Junior

SQL'de WHERE ve HAVING ifadeleri arasındaki fark nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

WHERE ifadesi, gruplaymadan önce uygulanır ve FROM sonucundaki satırları filtreler. HAVING ifadesi ise, gruplaymadan sonra uygulanır ve GROUP BY ile oluşturulan grupları filtreler.

Örnek:

Diyelim ki, customer_id, order_date ve amount sütunlarına sahip bir orders tablomuz var.

Toplam sipariş tutarı 1000'yi aşan tüm müşterileri bulun:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

1000'den fazla tutara sahip tüm siparişleri bulun:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Karşılaştırma tablosu:

Özellik WHERE HAVING
Uygulama Gruplamadan önceki bireysel satırlara Gruplamadan sonra oluşan gruplara
Kullanır FROM sütunlarını Toplam fonksiyonları ve GROUP BY sütunlarını
Çalıştırılır GROUP BY öncesi GROUP BY sonrası
Toplam fonksiyonları Doğrudan kullanılamaz Kullanılabilir