MySQL avg() 是一个聚合函数,用于返回一个表达式在各种记录中的平均值。
用法
以下是 MySQL 中 avg() 函数的基本语法:
SELECT AVG(aggregate_expression)
FROM tables
[WHERE conditions];
参数说明
aggregate_expression:它指定我们要查找平均结果的列或表达式。
table_name:它指定我们要从中检索记录的表。 FROM 子句中必须至少列出一个表。
WHERE 条件:可选。它指定要选择的记录必须满足的条件。
MySQL avg() 函数示例
考虑我们的数据库有一个名为员工的表,其中包含以下数据。现在,我们将通过各种示例来理解这个函数:
1. 基本示例
执行以下查询,计算表中所有员工的平均工作时间:
mysql> SELECT AVG(working_hours) Avg_working_hours FROM employees;
输出:
我们将得到如下结果:
2. 带有 WHERE 子句的 MySQL AVG() 函数
WHERE 子句指定所选记录必须满足的条件。执行以下查询以计算 working_hours >= 12 的员工的总平均工作时间。
mysql> SELECT AVG(working_hours) Avg_working_hours FROM employees WHERE working_hours>=12;
输出:
它将给出以下输出:
3. MySQL AVG() 函数与 GROUP BY 子句
GROUP BY 子句用于按一个或多个列返回每个组的结果。例如,此语句使用 AVG() 函数计算每个员工的平均工作时间,然后使用 GROUP BY 子句对结果进行分组:
mysql> SELECT emp_name, occupation, AVG(working_hours) Avg_working_hours FROM employees GROUP BY occupation;
输出:
在这里,我们可以看到每个员工的总工作时间是通过根据他们的职业对他们进行分组来计算的。
4. 带有 HAVING 子句的 MySQL AVG() 函数
HAVING 子句用于过滤 MySQL 中组的平均值。执行以下语句,计算所有员工的平均工作时间,根据他们的职业对他们进行分组,并返回 Avg_working_hours>9 的结果。
mysql> SELECT emp_name, occupation,
AVG(working_hours) Avg_working_hours
FROM employees
GROUP BY occupation
HAVING AVG(working_hours)>9;
输出:
5. 带有 DISTINCT 子句的 MySQL AVG() 函数
MySQL 使用 DISTINCT 关键字从列名中删除重复的行。此子句与此 avg() 函数一起使用,以返回表中存在的唯一记录数的平均值。
执行以下查询,删除员工表的 working_hours 列中的重复记录,然后返回平均值:
mysql> SELECT emp_name, occupation,
AVG(DISTINCT working_hours) Avg_working_hours
FROM employees
GROUP BY occupation;
输出:
相关用法
- MySQL ROUND()用法及代码示例
- MySQL REPEAT()用法及代码示例
- MySQL POWER()用法及代码示例
- MySQL LEAD() and LAG()用法及代码示例
- MySQL IS_IPV4()用法及代码示例
- MySQL WEEK()用法及代码示例
- MySQL CHARACTER_LENGTH()用法及代码示例
- MySQL CURTIME()用法及代码示例
- MySQL weekofyear()用法及代码示例
- MySQL CURRENT_TIME()用法及代码示例
- MySQL Convert()用法及代码示例
- MySQL FROM_BASE64()用法及代码示例
- MySQL OCT()用法及代码示例
- MySQL PI()用法及代码示例
- MySQL CONCAT()用法及代码示例
- MySQL period_add()用法及代码示例
- MySQL STDDEV()用法及代码示例
- MySQL INET6_ATON()用法及代码示例
- MySQL SPACE()用法及代码示例
- MySQL IS_UUID()用法及代码示例
注:本文由纯净天空筛选整理自 MySQL avg() function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。