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 |