Sobes.tech
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.