Junior — Middle
SQL sorguları ile çalışırken WHERE ve HAVING koşulları arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
WHERE ve HAVING SQL'de filtreleme koşullarıdır, ancak bunlar verilerin işlenme aşamalarında farklı zamanlarda uygulanır.
WHERE, satırları gruplamadan önce filtreler. Kaynak veriler seviyesinde kayıtları seçmek için kullanılır.HAVING,GROUP BYifadesiyle oluşturulan grupları filtreler. Toplama işleminden sonra uygulanır.
Örnek:
SELECT departman, COUNT(*) as çalışan_sayısı
FROM çalışanlar
WHERE maaş > 50000 -- maaşı 50000'den fazla olan çalışanları filtreliyoruz
GROUP BY departman
HAVING COUNT(*) > 10 -- 10'dan fazla çalışanı olan departmanları seçiyoruz
Burada önce maaşı 50000'den fazla olan çalışanlar seçilir (WHERE), sonra veriler departmanlara göre gruplanır ve ardından sadece çalışan sayısı 10'dan fazla olan departmanlar seçilir (HAVING).