Back to questions
Junior — Middle
81
Чем отличаются команды HAVING и WHERE в SQL-запросах и в каких случаях их используют?
Answer from AI
sobes.tech AI
Команды WHERE и HAVING в SQL используются для фильтрации данных, но применяются на разных этапах обработки запроса.
-
WHERE фильтрует строки до группировки. Он применяется к исходным данным и ограничивает набор строк, которые попадут в агрегатные функции или группировку.
-
HAVING фильтрует группы после применения агрегатных функций и группировки. Используется для условий на агрегированные значения.
Пример:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- фильтрация отдельных сотрудников
GROUP BY department
HAVING COUNT(*) > 10; -- фильтрация отделов с более чем 10 сотрудниками
Здесь WHERE отбирает сотрудников с зарплатой выше 50000, а HAVING — отделы, где таких сотрудников больше 10.