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 函数,我们使用下面显示的数据。

SQL VARP 示例
它返回指定列中所有记录的总体方差。例如,以下 SQL Server 查询将计算 Customers 表中 [Yearly Income] 列所有记录的方差。
SELECT VARP([YearlyIncome]) AS [Income Variance] FROM [Customer]

带 GROUP BY 子句的 SQL VARP 函数
在大多数情况下,我们通常会计算属于特定类别的产品的方差。在这些情况下,我们使用 GROUP BY 子句 按类别对产品进行分组。然后,使用此函数计算每个组中存在的产品的总体方差。让我们看一个 聚合函数 示例。
SELECT [Occupation]
,VARP([YearlyIncome]) AS [Income Variance]
FROM [Customer]
GROUP BY [Occupation]
上述 SQL Select 语句 查询将查找与特定部门关联的客户,并计算他们的收入方差。

我们正在采用“技术熟练的体力劳动者”职业,并向您展示输出。
-- 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
