Sobes.tech
Junior — Middle

SQL'da HAVING va WHERE operatorlari o'rtasidagi farq nima va qachon foydalanish kerak?

sobes.tech AI

AIdan javob

WHERE operatori satrlarni guruhlashdan oldin filtrlash uchun ishlatiladi. U keyingi operatsiyalarda, masalan, agregat funktsiyalarida qatnashadigan satrlarni tanlaydi.

HAVING operatori allaqachon guruhlangan ma'lumotlarni filtrlash uchun qo'llaniladi, ya'ni GROUP BY bajarilgandan so'ng. U agregat shartlariga ko'ra guruhlarni filtrlash imkonini beradi.

Misol:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- maosh bo'yicha satrlarni filtrlash
GROUP BY department
HAVING COUNT(*) > 5      -- xodimlar soniga ko'ra guruhlarni filtrlash

Xulosa:

  • WHERE alohida yozuvlarni guruhlashdan oldin filtrlash uchun.
  • HAVING guruhlashdan so'ng guruhlarni filtrlash uchun.

Shartlar uchun WHERE, agregat funktsiyalar uchun HAVING foydalaning.