SQL STDEVP 函数

SQL Server STDEVP 函数是一个聚合函数,用于计算由 SELECT 语句选择的总记录(或行)的总体标准差。STDEVP 函数的语法是

SELECT STDEVP ([Column_Name])
FROM [Source]

SQL Server STDEVP 函数公式

STDEVP 函数处理数字值,并忽略 Null 值。STDEVP 函数的数学公式是

--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

--Calculating Standard Deviation
Standard Deviation = Square root (Variance)

SQL Server STDEVP 函数语法

STDEVP 函数的语法是

SELECT STDEVP ([Column_Name])
FROM [Source]

为了使用此 SQL Server STDDEVP 函数计算总体标准差示例,我们使用下面显示的数据

SQL STDEVP 示例

STDEVP 函数返回指定列中记录总数的总体的标准差。例如,以下 STDEVP 查询计算 [Yearly Income] 列中记录总数的总体标准差。

-- Example for STDEVP Function
SELECT STDEVP ([YearlyIncome]) AS [Standard Deviation]    
  
  FROM [Customer]
STDEVP FUNCTION 1

带 GROUP BY 子句的 STDEVP 函数

我们使用 GROUP BY 子句 来计算每个组中产品标准差。让我们看一个 聚合函数 示例

-- Example for STDEVP Function
SELECT [Occupation]
       ,STDEVP ([YearlyIncome]) AS [Standard Deviation]    
  FROM [Customer]
  GROUP BY [Occupation]

上面的 SQL Select Statement 查询将找到与特定部门相关的客户,并计算他们的总体标准差。

STDEVP FUNCTION 2

让我们以熟练的手工职业为例,向您展示输出。

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

--Calculating Variance
Variance = ( (60000 - 70000) + (80000 - 70000) ) / 2
Variance = 100000000

--Calculating Standard Deviation
Standard Deviation = SQRT (Variance)
Standard Deviation = SQRT (100000000)
It means, Standard Deviation for Population = 10000

HAVING 子句中的 STDEVP 函数

以下 STDEVP 查询按客户的职业对客户进行分组,然后计算每个组的总体标准差。接下来,使用 SQL HAVING 子句 返回聚合数据大于 0 的行

-- Example for STDEVP Function
SELECT [Occupation]
       ,STDEVP ([YearlyIncome]) AS [Standard Deviation]    
 FROM [Customer]
 GROUP BY [Occupation]
 HAVING STDEVP ([YearlyIncome]) > 0

下面的代码检查每个组的年收入总体的标准差是否大于 0。如果为真,则将显示相应的记录。

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

子查询中的 SQL STDEVP 函数

在检索数据时,在某些情况下,我们会检查聚合数据的条件。在这些条件下,我们必须在 SQL Where Clause 中使用 子查询

例如,以下 STDEVP 查询返回年收入是年收入总体标准差五倍的客户。

-- Example for STDEVP Function
SELECT [FirstName]
      ,[LastName]
      ,[YearlyIncome]
      ,[Education]
      ,[Occupation]
  FROM [Customer]
  WHERE [YearlyIncome] > 
        (SELECT STDEVP([YearlyIncome] * 6) FROM [Customer])

从第一个示例中,您可以看到年收入的标准差是 11874。因此,上面的查询将显示 Customer 表中年收入大约大于 71244 的所有客户。