В этом учебном материале вы узнаете, как использовать SQL функцию AVG с синтаксисом и примерами.
Описание
SQL функция AVG используется для возврата среднего значения выражения в операторе SELECT.
Синтаксис
Синтаксис для функции AVG в SQL.
FROM tables
[WHERE conditions];
Или синтаксис для функции AVG при группировке результатов по одному или нескольким столбцам.
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
- Необязательный. Это условия, которые должны быть выполнены для выбора записей
Пример - с одним выражением
Например, вы, возможно, захотите узнать, какова средняя стоимость всех товаров, входящих в категорию Clothing.
1 2 3 |
SELECT AVG(cost) AS "Average Cost" FROM products WHERE category = 'Clothing'; |
В этом примере SQL функции AVG выражению AVG(cost) мы указали псевдоним "Average Cost". В результате "Average Cost" будет отображаться как имя поля при возврате набора результатов.
Пример - использование SQL DISTINCT
Вы можете использовать SQL DISTINCT в функции AVG. Например, приведенная ниже инструкция SELECT возвращает совокупную среднюю стоимость уникальных значений стоимости, где категория - Clothing.
1 2 3 |
SELECT AVG(DISTINCT cost) AS "Average Cost" FROM products WHERE category = 'Clothing'; |
Если бы было два стоимостных значения в 25 $, то только одно из этих значений будет использовано при расчете функции AVG.
Пример - использование формул
expression, содержащееся в функции AVG, необязательно должно быть одним полем. Вы также можете использовать формулу. Например, вы можете получить среднюю прибыль за продукт. Средняя прибыль рассчитывается как sale_price за вычетом cost.
1 2 |
SELECT AVG(sale_price - cost) AS "Average Profit" FROM products; |
Вы также можете выполнить математическую операцию в функции AVG. Например, вы можете определить среднюю комиссию как 10% от sale_price.
1 2 |
SELECT AVG(sale_price * 0.10) AS "Average Commission" FROM products; |
Пример - использование SQL GROUP BY
В некоторых случаях вам потребуется использовать предложение SQL GROUP BY с функцией AVG.
Например, вы также можете использовать функцию AVG, чтобы вернуть название отдела и средние продажи (в связанном отделе).
1 2 3 4 5 |
SELECT department, AVG(sales) AS "Average Sales" FROM order_details WHERE department > 10 GROUP BY department; |
Поскольку в операторе SELECT вы указали один столбец, который не инкапсулирован в функции AVG, вы должны использовать предложение GROUP BY, поэтому поле department должно быть указано в разделе GROUP BY.