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