Можно ли применять конструкцию HAVING в SQL-запросах без указания GROUP BY?

Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY.

Короткий ответ

Что ответить на собеседовании

Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY. Однако в некоторых СУБД можно использовать HAVING без GROUP BY — в этом случае HAVING действует как фильтр на агрегатные функции, применяемые ко всему набору данных.

Подробный разбор

Ответ с пояснениями

Конструкция HAVING обычно используется для фильтрации групп, сформированных с помощью GROUP BY. Однако в некоторых СУБД можно использовать HAVING без GROUP BY — в этом случае HAVING действует как фильтр на агрегатные функции, применяемые ко всему набору данных.

Например, запрос:

SELECT COUNT(*) FROM Orders HAVING COUNT(*) > 10;

будет работать и вернёт результат только если количество записей больше 10.

Но в большинстве случаев HAVING без GROUP BY встречается редко и может быть заменён на WHERE или другие конструкции. Лучше использовать HAVING вместе с GROUP BY для фильтрации групп.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку