Back to questions
Middle+
2
В чём разница между WHERE и HAVING?
Companies where asked
СБЕР AI
Answer from AI
sobes.tech AI
WHERE и HAVING — это условия фильтрации в SQL, но применяются на разных этапах обработки данных:
-
WHERE фильтрует строки до группировки. Он применяется к исходным данным и ограничивает набор строк, которые попадут в дальнейшую обработку.
-
HAVING фильтрует группы после выполнения агрегатных функций и группировки (GROUP BY). Он используется для ограничения групп по агрегатным условиям.
Пример:
SELECT department, COUNT(*) as employee_count
FROM employees
WHERE salary > 50000 -- фильтруем сотрудников с зарплатой > 50000
GROUP BY department
HAVING COUNT(*) > 10 -- выбираем отделы с более чем 10 такими сотрудниками
Здесь сначала выбираются сотрудники с зарплатой выше 50000 (WHERE), затем они группируются по отделам, и из этих групп выбираются только те, где количество сотрудников больше 10 (HAVING).