SQL Server VAR 函数是一个聚合函数,用于确定 SELECT 语句选择的全部记录(或行)的统计方差。VAR 函数的语法是
SELECT VAR ([Column_Name]) FROM [Source]
SQL Var 函数公式
VAR 函数仅适用于数字列,并且会忽略 Null 值。用于计算 Sql Server 统计方差的数学公式为:
--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 - 1)
对于此 VAR 函数演示,我们使用如下所示的数据

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

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

要显示所有内容的平均值和方差计算,数据量太大了。因此,我们选择了“熟练的专业人士”类别,并向您展示了输出。
--Calculating Mean Mean = (60000 + 80000) / 2 Mean = 70000 --Calculating Variance Variance = ( (60000 - 70000) + (80000 - 70000) ) / (2 -1) Variance = 200000000
SQL VAR 在 Having 子句中的应用
在对数据进行分组时,在某些情况下,我们通常会针对聚合数据检查条件。在这些情况下,我们将 HAVING 子句与 Group By 语句一起使用。例如,以下查询将按职业对客户进行分组,然后计算每个组的收入方差。
SELECT [Occupation]
,VAR ([YearlyIncome]) AS [Income Variance]
FROM [Customer]
GROUP BY [Occupation]
HAVING VAR ([YearlyIncome]) > 0
下面的代码行将检查聚合金额(每个组的年收入方差)是否大于 0。如果为 True,则会显示相应的记录或行。
HAVING VAR ([YearlyIncome]) > 0
