Sobes.tech
Назад к вопросам
Middle
19

Чем отличается WHERE от HAVING в SQL?

Компании, где спрашивали
e-legion

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

sobes.tech AI

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

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

Пример:

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

Здесь WHERE отбирает строки с зарплатой выше 50000, а HAVING — группы отделов с количеством сотрудников больше 10.