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