Middle
164
Was sind die Unterschiede zwischen den Operatoren WHERE und HAVING in SQL?
Antwort von AI
sobes.tech KI
WHERE фильтрует строки перед группировкой (GROUP BY), а HAVING фильтрует группы после группировки. WHERE может использовать столбцы, отсутствующие в SELECT, HAVING обычно использует агрегатные функции или столбцы, присутствующие в GROUP BY.
Пример:
SELECT
category,
COUNT(*) as total_items
FROM
products
WHERE
price > 10 // Фильтруем товары до группировки по категориям
GROUP BY
category
HAVING
COUNT(*) > 5; // Фильтруем группы категорий с количеством товаров больше 5
Сравнение:
| Оператор | Назначение | Применяется к | Может использовать агрегатные функции | Порядок выполнения относительно GROUP BY |
|---|---|---|---|---|
WHERE |
Фильтрация строк | Отдельные строки | Нет | До |
HAVING |
Фильтрация групп | Группы строк | Да | После |