только те группы, для которых
заданное условие истинно (TRUE).
Если используется предложение HAVING, сервер баз данных, как
правило, выполняет следующие действия.
• Группирует строки.
• Применяет групповую функцию.
• Производит вывод групп, удовлетворяющих условию
предложения HAVING.
Предложение HAVING может предшествовать предложению
GROUP BY, но более логично ставить предложение GROUP BY
первым. Образование групп и вычисление групповых функций
происходят до того, как к группам из списка SELECT применяется
ограничение, заданное в предложении HAVING.
Пример.
Вывод должности и общей заработной платы для всех
должностей с заработной платой более 5000 в месяц, кроме вице-
президентов. Выходные строки сортируются по заработной плате.
Предложения здесь рассматриваются в следующем порядке:
• Если команда содержит предложение WHERE, то прежде
всего отбираются строки, удовлетворяющие этому
предложению.
• Выявляются группы, заданные предложением GROUP BY.
• Исключаются группы, не удовлетворяющие критерию,
указанному в предложении HAVING.
Предложение GROUP BY можно использовать без указания
групповой функции в списке SELECT. Если отбор строк
производится по результатам групповой функции, то
использование как предложения GROUP BY, так и предложения
HAVING обязательно.
53