Sobes.tech
Junior — Middle

SQL-да HAVING операторы мен WHERE шарттарының айырмашылықтарын түсіндіріңіз және оларды қай жағдайларда қолдану керек?

sobes.tech AI

AI-дан жауап

SQL-да WHERE шарты жолдарды топтастырудан бұрын сүзгіден өткізеді, ал HAVING — топтастырғаннан кейін.

  • WHERE жеке жолдарға қолданылады және деректер жиынтығын шектейді, ол агрегатталатын болады.
  • HAVING агрегаттық функциялардың нәтижелеріне қолданылады және GROUP BY операторымен құрылған топтарды сүзгіден өткізеді.

Мысал:

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

Бастапқы деректерді сүзу үшін WHERE пайдаланыңыз, ал агрегатталған нәтижелерді сүзу үшін HAVING пайдаланыңыз.