SQL VAR 函数

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 函数演示,我们使用如下所示的数据

Customer table

SQL Server VAR 示例

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

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

SQL 方差与 Group By 子句

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

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

上面的 SQL Server 查询将查找与特定部门相关的客户,并计算他们的收入方差。

VAR FUNCTION With Group By Clause 2

要显示所有内容的平均值和方差计算,数据量太大了。因此,我们选择了“熟练的专业人士”类别,并向您展示了输出。

--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
VAR FUNCTION 3