Sobes.tech
Назад к вопросам
Senior
3

В чем разница между WHERE и HAVING?

Компании, где спрашивали
IT OneIT One

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

sobes.tech AI

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

Пример:

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

Таким образом, WHERE ограничивает исходные данные, а HAVING — результаты агрегатных функций.