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子句。
比如按产品类型统计平均销售额:
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
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函数能快速完成数据均值分析,是日常查询中非常实用的聚合工具。









