mysql中AVG函数用法_mysql AVG函数教程

AVG函数用于计算非NULL数值的平均值,语法为SELECT AVG(列名) FROM 表名;可结合GROUP BY按组统计,如SELECT category, AVG(price) AS avg_price FROM products GROUP BY category;配合HAVING筛选分组结果,如HAVING avg_sal > 5000;仅适用于数值型字段,无有效数据时返回NULL。

MySQL中的AVG函数用于计算指定列的平均值,常用于数值类型的字段统计。它会自动忽略NULL值,只对非NULL的值进行计算。

AVG函数基本语法

SELECT AVG(列名) FROM 表名 [WHERE 条件];

例如,有一个名为sales的表,包含id、product和amount字段:

+----+----------+--------+
| id | product  | amount |
+----+----------+--------+
|  1 | A        | 100    |
|  2 | B        | 150    |
|  3 | C        | NULL   |
|  4 | D        | 200    |
+----+----------+--------+

执行以下语句:

SELECT AVG(amount) FROM sales;

结果为:150(即 (100 + 150 + 200) / 3)

结合GROUP BY使用

当需要按某一类别分组计算平均值时,可配合GROUP BY子句。

比如按产品类型统计平均销售额:

SELECT category, AVG(price) AS avg_price FROM products GROUP BY category;

这将返回每个类别的平均价格,结果列命名为avg_price便于查看。

与HAVING配合筛选分组结果

若只想显示平均值高于某个阈值的组,可用HAVING子句:

SELECT department, AVG(salary) AS avg_sal FROM employees GROUP BY department HAVING avg_sal > 5000;

这条语句列出所有平均工资超过5000的部门。

注意事项

  • AVG只能用于数值型字段,如INT、DECIMAL、FLOAT等。
  • 如果查询结果无有效数据(全为NULL或空表),返回NULL。
  • 使用别名(AS)可提升结果可读性。
  • 在复杂查询中,可嵌套在其他函数或子查询中使用。

基本上就这些。掌握AVG函数能快速完成数据均值分析,是日常查询中非常实用的聚合工具。