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 值问题、浮点值/整数值问题、奇偶规则问题等。