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]

带 GROUP BY 子句的 STDEVP 函数
我们使用 GROUP BY 子句 来计算每个组中产品标准差。让我们看一个 聚合函数 示例
-- Example for STDEVP Function
SELECT [Occupation]
,STDEVP ([YearlyIncome]) AS [Standard Deviation]
FROM [Customer]
GROUP BY [Occupation]
上面的 SQL Select Statement 查询将找到与特定部门相关的客户,并计算他们的总体标准差。

让我们以熟练的手工职业为例,向您展示输出。
--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

子查询中的 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 的所有客户。
