Sobes.tech
Junior — Middle

SQL so'rovlar bilan ishlashda HAVING va WHERE shartlari o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

SQL'da WHERE va HAVING orasidagi asosiy farq:

  • WHERE satrlarni guruhlashdan oldin (GROUP BY) filtrlash uchun ishlatiladi. U alohida yozuvlarga qo'llaniladi.
  • HAVING guruhlarni guruhlashdan keyin filtrlash uchun ishlatiladi. U agregat funksiyalari (masalan, COUNT, SUM) bo'yicha shartlar uchun ishlatiladi.

Misol:

SELECT bo'lim, COUNT(*) as xodim_soni
FROM xodimlar
WHERE maosh > 50000    -- maoshi 50000 dan yuqori bo'lgan xodimlarni filtrlash
GROUP BY bo'lim
HAVING COUNT(*) > 10     -- 10 dan ortiq xodimga ega bo'limlarni tanlash

Bu yerda WHERE guruhlash uchun satrlarni tanlaydi, HAVING esa allaqachon guruhlangan ma'lumotlarni filtrlash uchun ishlatiladi.