HAVING SQL Server

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

Описание

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

Синтаксис

Синтаксис HAVING в SQL Server (Transact-SQL):

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

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

aggregate_function - это может быть функция, такая как функции SUM, COUNT, MIN, MAX или AVG.
expression1, expression2, ... expression_n - выражения, которые не заключены в агрегированную функцию и должны быть включены в предложение GROUP BY.
WHERE conditions- необязательный. Это условия для выбора записей.
HAVING having_condition - это дополнительное условие применяется только к агрегированным результатам для ограничения групп возвращаемых строк. В результирующий набор будут включены только те группы, состояние которых соответствует TRUE.

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

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

В этом примере HAVING используется функция SUM, чтобы вернуть имя department (отдела) и общее количество (в соответствующем отделе). SQL Server HAVING будет фильтровать результаты так, чтобы возвращались только отделы с общим количеством больше 50.

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

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

В этом примере предложения HAVING используется функция COUNT, чтобы вернуть city (город) и количество employees (сотрудников находящихся в этом городе), находящихся в state (штате) 'Nevada'. Предложение SQL Server HAVING будет фильтровать результаты, чтобы вернуть только города в Nevada с более чем 20-ю сотрудниками.

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

Рассмотрим, как мы можем использовать HAVING с функцией MIN.
Например:

В этом примере HAVING используется функция MIN, чтобы вернуть имя каждого department (отдела) и минимальную salary (заработную плату) в department. Предложение SQL Server HAVING будет возвращать только те department, где минимальная salary больше или равна 35 000 денежных единиц.

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

Наконец, давайте посмотрим, как мы можем использовать предложение HAVING с функцией MAX.
Например:

В этом примере HAVING используется функция MAX для возврата last_name сотрудника и максимальной salary (зарплаты) для этого значения last_name. Предложение SQL Server HAVING будет возвращать только те значения last_name, максимальный размер которых превышает 15000 денежных единиц.