Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY. Однако в некоторых СУБД можно использовать HAVING без GROUP BY — в этом случае HAVING действует как фильтр на агрегатные функции, применяемые ко всему набору данных.
Можно ли применять конструкцию HAVING в SQL-запросах без указания GROUP BY?
Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY. Однако в некоторых СУБД можно использовать HAVING без GROUP BY — в этом случае HAVING действует как фильтр на агрегатные функции, применяемые ко всему набору данных.
Например, запрос:
SELECT COUNT(*) FROM Orders HAVING COUNT(*) > 10;
будет работать и вернёт результат только если количество записей больше 10.
Но в большинстве случаев HAVING без GROUP BY встречается редко и может быть заменён на WHERE или другие конструкции. Лучше использовать HAVING вместе с GROUP BY для фильтрации групп.