AVG ФУНКЦИЯ

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию AVG с синтаксисом и примерами.

Описание

Oracle/PLSQL функция AVG возвращает среднее значение выражения.

Синтаксис

Синтаксис Oracle/PLSQL функции AVG:

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 возвращает numeric значение.

Применение

Функцию AVG можно использовать в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

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

Рассмотрим несколько примеров функции AVG и изучим, как использовать функцию AVG в Oracle/PLSQL.

Например, вы можете узнать, какая средняя заработная плата всех сотрудников, чья зарплата превышает 18000$ в год.

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

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

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

В приведенном примере рассчитывается средняя зарплата служащих из таблицы employees.

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

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

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

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

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