SQL Server функция AVG

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

Описание

В SQL Server (Transact-SQL) функция AVG возвращает среднее значение выражения.

Синтаксис

Синтаксис функции AVG в SQL Server (Transact-SQL):

SELECT AVG(aggregate_expression)
FROM tables
[WHERE conditions];

ИЛИ синтаксис функции AVG, когда результаты группируются одним или несколькими столбцами:

SELECT expression1, expression2, ... expression_n,
AVG(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;

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

expression1, expression2, ... expression_n
Выражения, которые не включены в функцию AVG и должны быть включены в оператор GROUP BY в конце SQL предложения.
aggregate_expression - это столбец или выражение, которое будет усреднено.
tables - таблицы, из которых вы хотите получить записи. Должна быть хотя бы одна таблица, перечисленная в операторе FROM.
WHERE conditions - необязательный. Это условия, которые должны выполняться для выбранных записей.

Применение

Функция AVG может использоваться в следующих версиях SQL Server (Transact-SQL):
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005

Пример с одним полем

Рассмотрим некоторые примеры SQL Server функции AVG, чтобы понять, как использовать функцию AVG в SQL Server (Transact-SQL).

Например, вы можете узнать, как среднее количество всех products, где quantity больше 0. Например:

В этом примере функции AVG мы выражению AVG(quantity) указали алиас as "Average Quantity". В результате "Average Quantity" будет отображаться как имя поля при возврате результирующего набора.

Пример использования DISTINCT

Вы можете использовать оператор DISTINCT с функцией AVG. Например, приведенный ниже оператор SQL возвращает среднюю зарплату с уникальными значениями заработной платы, где заработная плата превышает 30 000 долларов в год.

Если бы были две зарплаты в размере 40 000 долл. в год, то только одно из этих значений использовалось бы в функции AVG.

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

Выражение, содержащееся в функции AVG, не обязательно должно быть одним полем. Вы также можете использовать формулу. Например, вам может понадобиться средняя комиссия.

Пример использования GROUP BY

Вы также можете использовать функцию AVG, чтобы вернуть имя отдела и среднее количество (в соответствующем отделе). Например,

Поскольку вы указали один столбец в операторе SELECT, который не включены в функцию AVG, то вы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.