Sobes.tech
Junior — Middle

SQL сұрауларымен жұмыс жасағанда WHERE және HAVING шарттарының айырмашылығы неде?

sobes.tech AI

AI-дан жауап

SQL-да WHERE және HAVING шарттары деректерді сүзу үшін қолданылады, бірақ олар сұрау өңдеуінің әртүрлі кезеңдерінде қолданылады:

  • WHERE жолдарды бұрын топтастыру және жинақтау алдында сүзеді. Ол сұрауда қолданылатын деректер жиынтығын шектейді.
  • HAVING топтарды жинақтау функцияларын қолданғаннан кейін сүзеді (мысалы, SUM, COUNT, AVG). Ол жинақтау нәтижелерін шектеу үшін пайдаланылады.

Мысал:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000       -- жалақысы 50000-ден жоғары қызметкерлерді сүзу
GROUP BY department
HAVING COUNT(*) > 10;        -- 10-нан астам қызметкері бар бөлімдерді таңдау

Мұнда WHERE жалақысы 50000-ден жоғары қызметкерлерді таңдайды, ал HAVING осындай қызметкерлері 10-нан асатын бөлімдерді сүзеді.