GROUP BY id_otdel

HAVING AVG(salary)>10000.

Предложение HAVING задает условие отбора групп для вывода. Следовательно, на группы накладывается дальнейшее ограничение, основанное на сводной информации.

Синтаксис:

SELECT {столбец, групповая_функция}

FROM Таблица

[ WHERE условие]

[ GROUP BY выражение_группирования]

[HAVING условие_группы]

[ ORDER BY {Столбец, выражение}[ ASC | DESC ]];

где HAVING - вывод конкретных групп.

Условие_группы - включает в выходной результат только те группы, для которых заданное условие истинно (TRUE).

Если используется предложение HAVING, сервер базы данных ORACLE выполняет следующие действия:

- Группирует строки.

- Применяет групповую функцию.

- Производит вывод групп, удовлетворяющих условию предложения HAVING.

Предложение HAVING может предшествовать предложению GROUP BY, но более логично ставить предложение GROUP BY первым. Образование групп и вычисление групповых функций происходят до того, как к группам из списка SELECT применяется ограничение, заданное в предложении HAVING.

Пример 5: Вывод должности и общей заработной платы для всех должностей с заработной платой более 20000 в месяц, кроме вице-президентов. Выходные строки сортируются по заработной плате.

SELECT dolzhn, SUM(salary) SUMMA

FROM EMP

WHERE dozhn NOT LIKE ‘VP%’

GROUP BY dolzhn

HAVING SUM(salary)>20000

ORDER BY SUM(salary);

Сервер Oracle рассматривает предложения в следующем порядке:

- Если команда содержит предложение WHERE сервер, прежде всего, отбирает строки в соответствии с этим предложением.

- Сервер выявляет группы, заданные предложением GROUP BY.

- Исключаются группы, не удовлетворяющие критерию предложения HAVING.

Предложение GROUP BY можно использовать без указания групповой функции в списке SELECT. Если отбор строк производится по результатам групповой функции, то использование как предложения GROUP BY, так и предложения HAVING обязательно

Тема 9: Подзапросы.

Подзапрос. Его назначение и синтаксис.

Однострочные и многострочные подзапросы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: