SQL 数值函数如何计算平均值?

AVG()函数用于计算某列非空数值的平均值,语法为SELECT AVG(列名) FROM 表名;可结合GROUP BY按类别分组计算,如SELECT salesman, AVG(amount) FROM sales GROUP BY salesman;处理整数除法时需用CAST或乘1.0提升精度。

SQL 中计算平均值使用的是 AVG() 函数,它是一个聚合函数,用于返回某列数值的平均值。该函数会自动忽略 NULL 值,只对非空的数值进行计算。

AVG() 函数的基本语法

AVG() 的使用格式如下:

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

例如,有一个名为 sales 的表,包含字段 amount,要计算所有销售金额的平均值:

SELECT AVG(amount) AS average_amount FROM sales;

结合 GROUP BY 分组计算平均值

如果需要按某一类别分组求平均,可以配合 GROUP BY 使用。

比如按销售人员分组,计算每人平均销售额:

SELECT salesman, AVG(amount) AS avg_sales FROM sales GROUP BY salesman;

处理整数除法与精度问题

某些数据库(如 SQL Server 或 PostgreSQL)中,如果列为整数类型,AVG() 可能返回整数或四舍五入的结果。为获得更精确的小数结果,可先将列转为浮点类型:

SELECT AVG(CAST(amount AS FLOAT)) AS average_amount FROM sales;

或使用乘法方式强制提升精度:

SELECT AVG(amount * 1.0) AS average_amount FROM sales;

基本上就这些,AVG() 是最常用的统计函数之一,关键在于注意数据类型和是否需要分组。