Назад к вопросам
СБЕР
Senior
4
Чем HAVING отличается от WHERE?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Основное отличие между HAVING и WHERE заключается в том, на каком этапе обработки данных они применяются:
-
WHEREфильтрует строки до группировки. Он применяется к исходным данным и ограничивает набор строк, которые попадут в агрегатные функции и группировку. -
HAVINGфильтрует группы после выполнения агрегатных функций и группировки. Он применяется к результатам агрегирования.
Пример:
SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000 -- фильтруем сотрудников с зарплатой > 50000
GROUP BY department
HAVING COUNT(*) > 10 -- выбираем отделы с более чем 10 сотрудниками
Здесь WHERE ограничивает исходные строки, а HAVING — итоговые группы.