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

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

Компании, где спрашивали
Cloud.ru

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

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(*) > 5     -- выбираем отделы с более чем 5 сотрудниками

Здесь сначала выбираются сотрудники с зарплатой выше 50000 (WHERE), затем данные группируются по отделам, и из этих групп выбираются только те, где сотрудников больше 5 (HAVING).