Sobes.tech
Middle
166

Quelles sont les différences entre les opérateurs WHERE et HAVING en SQL?

Réponse de l'IA

sobes.tech IA

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 Фильтрация групп Группы строк Да После