SQL Server AVG 函数计算选定记录或行的总数的平均值。AVG 函数仅适用于数字列,其语法如下所示。
SELECT AVG ([Column_Name]) FROM [Source]
例如,如果您想找到商店中产品的平均价格。如果您想找到黑色产品的平均成本,请使用 Avg 函数。对于此函数示例,我们使用此数据。

SQL Server AVG 函数示例
Avg 函数返回指定列中记录总数的平均值。下面的 聚合函数 查询将计算 Customers 表中 [Yearly Income] 列中记录总数的平均值。
SELECT AVG ([YearlyIncome]) AS [Total Income] FROM [Customer]

Group By 子句示例
通常,我们会检查属于特定颜色的平均产品价格。在这种情况下,我们使用 GROUP BY 子句 按颜色对产品进行分组。然后使用 SQL AVG 函数计算每组中存在的产品的平均值。让我们看一个示例。
SELECT [Occupation]
,AVG ([YearlyIncome]) AS [Total Income]
FROM [Customer]
GROUP BY [Occupation]
上面的 SQL Server 查询将查找与特定部门关联的客户,并找到每个部门的平均收入。

AVG Distinct 函数示例
DISTINCT 列计算唯一记录(值为 NOT NULL)的平均值(忽略 NULL 记录)。DISTINCT 会从给定列中删除重复项。
SELECT [Occupation]
,AVG (DISTINCT [YearlyIncome]) AS [Total Income]
FROM [Customer]
GROUP BY [Occupation]
它通过删除重复项来查找 [Yearly Income] 列中唯一记录(通过删除重复项),然后计算它们的平均值

SQL AVG 函数在 Where 子句子查询中
在检索数据时,在某些情况下,我们会针对聚合数据使用条件。在这些情况下,我们必须在 Where 子句 中使用 子查询。例如,此 AVG 查询将返回 [Yearly Income] 大于平均年收入的客户。
SELECT [FirstName]
,[LastName]
,[YearlyIncome]
,[Education]
,[Occupation]
FROM [Customer]
WHERE [YearlyIncome] >
(SELECT AVG([YearlyIncome]) FROM [Customer])
从第一个示例可以看出,平均年收入为 67000。因此,上述查询将显示年收入大于 67000 的所有客户
