Sobes.tech
Junior — Middle
76

Чем отличается применение условий HAVING и WHERE при работе с SQL-запросами?

Компании, где спрашивали
ИнфоТехСервис
OkkoOkko
ООО Корпорация ЗНАК
РунитиРунити

Ответ от нейросети

sobes.tech AI

В SQL WHERE и HAVING используются для фильтрации, но на разных этапах обработки данных:

  • WHERE фильтрует строки до группировки (до GROUP BY). Он ограничивает набор данных, который будет агрегироваться.
  • HAVING фильтрует группы после агрегирования. Используется для условий на агрегатные функции, например, SUM(), COUNT().

Пример:

SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000  -- фильтруем сотрудников с зарплатой > 50000
GROUP BY department
HAVING COUNT(*) > 10     -- выбираем отделы с более чем 10 такими сотрудниками

Таким образом, WHERE работает с отдельными записями, а HAVING — с результатами агрегирования.