Sobes.tech
Back to questions
Junior — Middle
101

Объясните различия между оператором HAVING и условием WHERE в SQL и в каких случаях их стоит использовать?

Answer from AI

sobes.tech 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 — для фильтрации агрегированных результатов.