В этом учебном пособии вы узнаете, как использовать оператор HAVING в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
Оператор HAVING SQL Server (Transact-SQL) используется в сочетании с оператором GROUP BY, чтобы ограничить группы возвращаемых строк только теми, чье условие TRUE.
Синтаксис
Синтаксис HAVING в SQL Server (Transact-SQL):
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.
Например:
1 2 3 4 |
SELECT department, SUM(quantity) AS "Total Quantity" FROM products GROUP BY department HAVING SUM(quantity) > 50; |
В этом примере HAVING используется функция SUM, чтобы вернуть имя department (отдела) и общее количество (в соответствующем отделе). SQL Server HAVING будет фильтровать результаты так, чтобы возвращались только отделы с общим количеством больше 50.
Пример использования функции COUNT
Рассмотрим, как мы можем использовать HAVING с функцией COUNT.
Например:
1 2 3 4 5 |
SELECT city, COUNT(*) AS "Number of employees" FROM employees WHERE state = 'Nevada' GROUP BY city HAVING COUNT(*) > 20; |
В этом примере предложения HAVING используется функция COUNT, чтобы вернуть city (город) и количество employees (сотрудников находящихся в этом городе), находящихся в state (штате) 'Nevada'. Предложение SQL Server HAVING будет фильтровать результаты, чтобы вернуть только города в Nevada с более чем 20-ю сотрудниками.
Пример использования функции MIN
Рассмотрим, как мы можем использовать HAVING с функцией MIN.
Например:
1 2 3 4 |
SELECT department, MIN(salary) AS "Lowest salary" FROM employees GROUP BY department HAVING MIN(salary) >= 35000; |
В этом примере HAVING используется функция MIN, чтобы вернуть имя каждого department (отдела) и минимальную salary (заработную плату) в department. Предложение SQL Server HAVING будет возвращать только те department, где минимальная salary больше или равна 35 000 денежных единиц.
Пример использования функции MAX
Наконец, давайте посмотрим, как мы можем использовать предложение HAVING с функцией MAX.
Например:
1 2 3 4 |
SELECT last_name, MAX(salary) AS "Highest salary" FROM employees GROUP BY department HAVING MAX(salary) > 15000; |
В этом примере HAVING используется функция MAX для возврата last_name сотрудника и максимальной salary (зарплаты) для этого значения last_name. Предложение SQL Server HAVING будет возвращать только те значения last_name, максимальный размер которых превышает 15000 денежных единиц.