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