В чем отличие ключевых слов WHERE от HAVING
Python
Junior
Без компании
В чем отличие ключевых слов WHERE от HAVING
Ответы
Основное отличие между `WHERE` и `HAVING` в SQL заключается в том, когда они применяются в процессе выполнения запроса:
- `WHERE` фильтрует строки **до** группировки (используется с `GROUP BY`).
- `HAVING` фильтрует результаты **после** группировки (работает с агрегатными функциями, такими как `SUM`, `COUNT` и т. д.).
**Пример:**
```
-- WHERE фильтрует до группировки
SELECT department, COUNT(*)
FROM employees
WHERE salary > 50000
GROUP BY department;
-- HAVING фильтрует после группировки
SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
```
**Ключевые моменты:**
- `WHERE` не может использовать агрегатные функции.
- `HAVING` применяется только с `GROUP BY` (если нет группировки, обычно используют `WHERE`).