В этом учебном пособии вы узнаете, как использовать MySQL функцию AVG с синтаксисом и примерами.
Описание
MySQL функция AVG возвращает среднее значение выражения.
Синтаксис
Синтаксис MySQL функции AVG:
FROM tables
[WHERE conditions];
ИЛИ Синтаксис MySQL функции 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 - необязательный. Это условия, которые должны быть выполнены для выбранных записей.
Применение
Функция AVG может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0, MySQL 3.23
Пример с одним выражением
Например, вы можете узнать, какая средняя зарплата всех сотрудников, чья зарплата превышает 12 000 долларов в год.
Например:
1 2 3 |
SELECT AVG(salary) AS "Средняя зарплата" FROM employees WHERE salary > 12000; |
В этом примере функции AVG выражению AVG (salary) мы указали алиас "Средняя зарплата". В результирующем наборе имя поля будет отображаться как "Средняя зарплата".
Пример с использованием DISTINCT
Вы можете использовать предложение DISTINCT в функции AVG. Например, приведенная ниже инструкция SQL возвращает среднюю зарплату уникальных значений зарплат, где зарплата выше 12 000 долларов в год.
1 2 3 |
SELECT AVG(DISTINCT salary) AS "Средняя зарплата" FROM employees WHERE salary > 12000; |
Если бы было две зарплаты в 15 000 долларов в год, то только одно из этих значений использовалось бы в функции AVG.
Пример с использованием формулы
Выражение, содержащееся в функции AVG, не обязательно должно быть одним полем. Вы также можете использовать формулу. Например, вам может потребоваться средняя комиссия.
1 2 |
SELECT AVG(sales * 0.10) AS "Average Commission" FROM orders; |
Пример с использованием GROUP BY
Вы также можете использовать функцию AVG, чтобы вернуть название отдела и средние продажи (в соответствующем отделе).
Например,
1 2 3 |
SELECT department, AVG(sales) AS "Avg sales" FROM order_details GROUP BY department; |
Поскольку мы указали один столбец в своем операторе SELECT, который не инкапсулирован в функцию AVG, мы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в разделе GROUP BY.