Назад к вопросам
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).