MySQL avg()函数
 
 
  MySQL avg()是一个聚合函数,用于返回各种记录中表达式的平均值。
 
语法
 
 以下是MySQL中avg()函数的基本语法: 
 
 
  
  
SELECT AVG(aggregate_expression)  
FROM tables  
[WHERE conditions];
 
   
  
参数说明
 
 
  aggregate_expression: 它指定要查找平均结果的列或表达式。
 
 
  table_name: 它指定我们要从中检索记录的表。在FROM子句中必须至少列出一个表。
 
 
 conditions: 这是可选的。它指定了选择记录所必须满足的条件。
 
 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、带有GROUP BY子句的MySQL AVG()函数 
 
  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()函数一起使用,以返回表中存在的唯一记录数的平均值。
 
 执行以下查询,以删除employee表中的重复记录然后返回平均值: 
 
 
  
  
mysql> SELECT emp_name, occupation, 
AVG(DISTINCT working_hours) Avg_working_hours
FROM employees
GROUP BY occupation;
 
   
  
 
 输出:  
 
