Junior — Middle
93
Какое отличие между операторами HAVING и WHERE в SQL и в каких случаях следует их использовать?
Компании, где спрашивали
Swiftfactory
Ответ от нейросети
sobes.tech AI
Оператор WHERE используется для фильтрации строк до группировки данных. Он отбирает строки, которые будут участвовать в дальнейших операциях, например, в агрегатных функциях.
Оператор HAVING применяется для фильтрации уже сгруппированных данных, то есть после выполнения GROUP BY. Он позволяет отфильтровать группы по агрегатным условиям.
Пример:
SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000 -- фильтрация строк по зарплате
GROUP BY department
HAVING COUNT(*) > 5 -- фильтрация групп по количеству сотрудников
Итого:
- WHERE фильтрует отдельные записи до группировки.
- HAVING фильтрует группы после группировки.
Используйте WHERE для условий на отдельные поля, HAVING — для условий на агрегатные функции.