SQL VARP 函数

SQL Server VARP 函数计算由 SELECT 语句选择的总行的总体方差。 VARP 函数的语法为

SELECT VARP([Column_Name])
FROM [Source]

SQL Server VARP 函数仅适用于数字列,并忽略 NULL 值。VARP 函数计算总体统计方差的数学公式如下所示。

--Calculating the Mean or Average
Mean = Sum of each individual/Total number of items

--Calculating the Statistical Variance
Variance = ((OriginalValue – Mean)² + (OriginalValue – Mean)² +.... )/Total number of items

对于此 VARP 函数,我们使用下面显示的数据。

Customer Table

SQL VARP 示例

它返回指定列中所有记录的总体方差。例如,以下 SQL Server 查询将计算 Customers 表中 [Yearly Income] 列所有记录的方差。

SELECT VARP([YearlyIncome]) AS [Income Variance]    
  
  FROM [Customer]
VARP FUNCTION 1

带 GROUP BY 子句的 SQL VARP 函数

在大多数情况下,我们通常会计算属于特定类别的产品的方差。在这些情况下,我们使用 GROUP BY 子句 按类别对产品进行分组。然后,使用此函数计算每个组中存在的产品的总体方差。让我们看一个 聚合函数 示例。

SELECT [Occupation]
       ,VARP([YearlyIncome]) AS [Income Variance]    
  FROM [Customer]
  GROUP BY [Occupation]

上述 SQL Select 语句 查询将查找与特定部门关联的客户,并计算他们的收入方差。

VARP FUNCTION 2

我们正在采用“技术熟练的体力劳动者”职业,并向您展示输出。

-- Calculating Mean
Mean = (60000 + 80000) / 2

Mean = 70000

--Calculating variance for Population
Variance for population = ( (60000 - 70000) + (80000 - 70000) ) / 2

Variance for population = 100000000

HAVING 子句中的 VARP

当我们需要对数据进行分组时,有时我们会对聚合数据应用条件。在这些情况下,我们通常将 SQL HAVING 子句 与 Group By 语句一起使用。例如,以下查询按职业对客户进行分组,然后查找每个组的收入方差。

SELECT [Occupation]
       ,VARP([YearlyIncome]) AS [Income Variance]    
 FROM [Customer]
 GROUP BY [Occupation]
 HAVING VARP ([YearlyIncome]) > 0

下面的代码行将检查聚合金额(每个组的年收入总体的方差)是否大于 0。如果为 True,则会显示相应的记录。

HAVING VARP([YearlyIncome]) > 0
VARP FUNCTION 3