SQL оператор HAVING

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

Описание

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

Синтаксис

Синтаксис оператора HAVING в SQL:

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

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

expression1, expression2, … expression_n
Выражения, которые не заключены в агрегатную функцию должны быть включены в предложение GROUP BY в конце SQL оператора.
aggregate_function
Это агрегатная функция, такая как SUM, COUNT, MIN, MAX или AVG.
aggregate_expression
Это столбец или выражение, для которого будет использоваться aggregate_function.
tables
Таблицы, из которых вы хотите получить записи. В предложении FROM должна быть указана хотя бы одна таблица.
WHERE conditions
Необязательный. Это условия для выбора записей.
HAVING condition
Это еще одно условие, применяемое только к агрегированным результатам, чтобы ограничить группы возвращаемых строк. Только те группы, состояние которых оценивается как true, будут включены в набор результатов.

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

Давайте рассмотрим SQL пример HAVING, в котором используется SQL функция SUM.

Вы также можете использовать SQL функцию SUM для возврата названия department и total sales (общих продаж в связанном отделе). SQL-предложение HAVING отфильтрует результаты так, что будут возвращены только department с продажами более 1000 $.

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

Давайте посмотрим, как мы можем использовать HAVING с SQL функцией COUNT.

Вы можете использовать SQL функцию COUNT, чтобы вернуть название department (отдела) и количество employees (сотрудников в соответствующем отделе), sales (продажи) которых составляют более 25000 $ в год. SQL-предложение HAVING будет фильтровать результаты, так что будут возвращены только отделы с более чем 10 сотрудниками.

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

Давайте теперь посмотрим, как мы могли бы использовать HAVING с SQL функцией MIN.

Вы также можете использовать SQL функцию MIN для возврата department (названия отдела) и MIN(salary) (минимальной зарплаты в отделе). SQL-предложение HAVING вернет только те department, где MIN(salary) превышает 55000 $.

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

Наконец, рассмотрим, использование HAVING с функцией SQL MAX.
Например, вы можете использовать SQL функцию MAX, чтобы вернуть department и максимальную salary в отделе. SQL-предложение HAVING вернет только те department, чья максимальная salary составляет менее 35000 $.