SQL AVG() 函数
SQL AVG() 函数
概述
SQL AVG() 函数是针对一个列返回数值型数据的平均值的聚合函数。它计算每个组中一个指定列的平均值。AVG() 函数返回值为单个值。
语法
AVG() 函数的语法如下:
AVG(column_name)
这个函数只针对数值列。
参数
column_name
:花括号里必须是数值列名。列名可以是表中任何列或有效的表达式。
示例
例如,以下是 Orders
表:
OrderID | CustomerID | OrderDate | Amount |
---|---|---|---|
1 | 1 | 2021-01-01 | 200 |
2 | 1 | 2021-02-02 | 100 |
3 | 2 | 2021-03-03 | 300 |
4 | 2 | 2021-04-04 | 400 |
5 | 3 | 2021-05-05 | 1000 |
我们可以用以下 SQL 语句计算订单金额的平均值:
SELECT AVG(Amount) AS AvgAmount FROM Orders;
执行结果如下:
AvgAmount |
---|
400.00 |
使用 AVG() 函数来分组
我们也可以使用 AVG() 函数来计算组中的平均值。例如,以下查询将在每个客户 ID 上计算平均订单金额:
SELECT CustomerID, AVG(Amount) AS AvgAmount FROM Orders GROUP BY CustomerID;
执行结果如下:
CustomerID | AvgAmount |
---|---|
1 | 150.00 |
2 | 350.00 |
3 | 1000.00 |
注意事项
- AVG() 函数不考虑 NULL 值,因此,如果要排除值为空的行,应该查询时使用 WHERE 子句来过滤或使用 AVG() 函数时使用表达式来排除 NULL 值。
- AVG() 函数返回一个浮点值,除非使用奇偶规则进行除法。 若要执行整数除法,请使用整数除法运算符或 CAST() 函数。
- AVG() 函数可以在 SELECT 语句中使用作为表达式,也可以在 HAVING 子句和 ORDER BY 子句中使用。
- AVG() 函数可以与其他聚合函数如 MIN()、MAX()、COUNT() 等结合使用,扩展 SQL 的聚合功能。
总结
- SQL AVG() 函数是一个聚合函数,主要用于计算每个组中的一个指定列的平均值。
- AVG() 函数针对数值列,可以用作表达式,可以在 SELECT 语句中使用作为表达式,也可以在 HAVING 子句和 ORDER BY 子句中使用。
- 我们需要注意 AVG() 函数下的一些问题,例如:NULL 值问题、浮点值/整数值问题、奇偶规则问题等。