SQL AVG 函数

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]
AVG Function Example 1

Group By 子句示例

通常,我们会检查属于特定颜色的平均产品价格。在这种情况下,我们使用 GROUP BY 子句 按颜色对产品进行分组。然后使用 SQL AVG 函数计算每组中存在的产品的平均值。让我们看一个示例。

SELECT [Occupation]
       ,AVG ([YearlyIncome]) AS [Total Income]    
  FROM [Customer]
  GROUP BY [Occupation]

上面的 SQL Server 查询将查找与特定部门关联的客户,并找到每个部门的平均收入。

Sql Server AVG FUNCTION and Group By 2

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 的所有客户

AVG FUNCTION in SUBQUERY 2