Sobes.tech
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 BY ifadesiyle 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).