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