AVG函数用于计算非NULL数值的平均值,语法为SELECT AVG(列名) FROM 表名;可结合GROUP BY按组统计,如SELECT category, AVG(price) AS avg_price FROM products GROUP BYcategory;配合HAVING筛选分组结果,如HAVING avg_sal > 5000;仅适用于数值型字段,无有效数据时返回NULL。
MySQL中的AVG函数用于计算指定列的平均值,常用于数值类型的字段统计。它会自动忽略NULL值,只对非NULL的值进行计算。
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子句。
比如按产品类型统计平均销售额:
SELECT category, AVG(price) AS avg_price FROM products GROUP BY category;
这将返回每个类别的平均价格,结果列命名为avg_price便于查看。
若只想显示平均值高于某个阈值的组,可用HAVING子句:
SELECT department, AVG(salary) AS avg_sal FROM employees GROUP BY department HAVING avg_sal > 5000;
这条语句列出所有平均工资超过5000的部门。
基本上就这些。掌握AVG函数能快速完成数据均值分析,是日常查询中非常实用的聚合工具。