PostgreSQL оператор HAVING

В этом учебном пособии вы узнаете, как использовать PostgreSQL оператор HAVING с синтаксисом и примерами.

Описание

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

Синтаксис

Синтаксис для оператора HAVING в PostgreSQL:

SELECT expression1, expression2,... expression_n,
aggregate_function (expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2,... expression_n
HAVING condition;

Параметры или аргументы

aggregate_function
Это может быть агрегатная функция, например sum, count, min, max или avg.
expression1, expression2,... expression_n
Выражения, которые не заключены в агрегатную функцию и должны быть включены в операторе GROUP BY.
WHERE conditions
Необязательный. Это условия для выбора записей.
HAVING condition
Это еще одно условие, применяемое только к агрегированным результатам, чтобы ограничить группы возвращаемых строк. Только те группы, чье условие оценивается как TRUE, будут включены в набор результатов.

Пример - использование функции sum

Рассмотрим пример HAVING, в котором используется функция sum.
Вы также можете использовать функцию sum для возврата department (отдела) и sum(salary) (общей заработной платы для этого отдела). PostgreSQL оператор HAVING отфильтрует результаты так, что будут возвращены только отделы с общей зарплатой, превышающей 25000 долларов США.

Пример - использование функции count

Давайте посмотрим, как использовать оператор HAVING с функцией count.
Вы можете использовать функцию count, чтобы вернуть отдел и количество сотрудников (для этого отдела), которые имеют статус «Активный». PostgreSQL оператор HAVING отфильтрует результаты так, что будут возвращены только те отделы, в которых занято не более 35 сотрудников.

Пример - использование функции min

Давайте теперь посмотрим, как использовать оператор HAVING с функцией min.
Вы также можете использовать функцию min, чтобы вернуть название каждого отдела и минимальную зарплату в этом отделе. PostgreSQL оператор HAVING возвращает только те отделы, где минимальная зарплата составляет менее 36000 долларов США.

Пример - использование функции max

Наконец, рассмотрим как использовать оператор HAVING с функцией max.
Например, вы также можете использовать функцию max, чтобы вернуть название каждого отдела и максимальную зарплату в отделе. PostgreSQL оператор HAVING будет возвращать только те отделы, чья максимальная зарплата больше или равна 31950 долларов США.