В этом учебном пособии вы узнаете, как использовать SQLite функцию avg с синтаксисом и примерами.
Описание
SQLite функция avg возвращает среднее значение выражения.
Синтаксис
Синтаксис функции avg в SQLite:
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
Необязательный. Это условия, которые должны быть соблюдены для выбранных записей.
Применение
Функция avg может использоваться в следующих версиях SQLite:
- SQLite 3.8.6, SQLite 3.8.x, SQLite 3.7.x, SQLite 3.6.x
Пример - с одним выражением
Давайте рассмотрим некоторые примеры функций avg в SQLite и узнаем, как использовать функцию avg в SQLite.
Например, вы, возможно, захотите узнать, какова средняя зарплата всех сотрудников, чья фамилия - 'Petrov'.
1 2 3 |
SELECT avg(salary) AS "Avg Salary" FROM employees WHERE last_name = 'Petrov'; |
В этом примере функции avg мы назвали выражение avg (salary) как "Avg Salary".
Пример - использование DISTINCT
Вы можете использовать оператор DISTINCT в функции avg. Например, приведенный ниже оператор SQL возвращает среднюю зарплату с уникальными значениями заработной платы, где заработная плата превышает 25000$ в год.
1 2 3 |
SELECT avg(DISTINCT salary) AS "Avg Salary" FROM employees WHERE salary > 25000; |
Если бы было две зарплаты в размере 40000$ в год, только одно из этих значений использовалось бы при вычислении функции avg.
Пример - использование формулы
Выражение, содержащееся в функции avg, не обязательно должно быть одним полем. Вы также можете использовать формулу. Например, вам может потребоваться среднемесячная зарплата всех сотрудников.
1 2 |
SELECT avg(salary / 12) AS "Average Monthly Salary" FROM employees; |
Пример - использование GROUP BY
Вы также можете использовать функцию avg для получения названия отдела и средней заработной платы (в соответствующем отделе). Например,
1 2 3 |
SELECT department, SUM(salary) AS "Avg Salary by Dept" FROM employees GROUP BY department; |
Поскольку в вашем операторе SELECT указан один столбец, который не инкапсулирован в функцию avg, вы должны использовать оператор GROUP BY. Поэтому поле department должно быть указано в разделе GROUP BY.