Junior — Middle
Jaka jest różnica między operatorami HAVING i WHERE w SQL i kiedy należy ich używać?
sobes.tech AI
Odpowiedź od 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 — для условий на агрегатные функции.