STDEVP (Transact-SQL)
Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
指定された式のすべての値を母集団として統計的標準偏差を返します。
構文
-- Aggregate Function Syntax
STDEVP ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
STDEVP ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)
引数
ALL
すべての値にこの関数を適用します。 ALL が既定値です。
DISTINCT
重複する値は 1 つだけカウントします。
式 (expression)
数値式を指定します。 集計関数とサブクエリは使用できません。 expression は、bit データ型を除く、真数データ型または概数データ型の式です。
OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause は、FROM 句で生成された結果セットをパーティションに分割します。このパーティションに関数が適用されます。 指定しない場合、関数ではクエリ結果セットのすべての行を 1 つのグループとして扱います。 order_by_clause 操作が実行される論理的順序を決定します。 order_by_clause は必須です。 詳細については、OVER 句 (Transact-SQL) に関する記事を参照してください。
戻り値の型
float
注釈
SELECT ステートメントの中のすべての項目に対して STDEVP を使用すると、結果セット内のすべての値が計算に含まれます。 STDEVP は、数値型列に対して使用できます。 NULL 値は無視されます。
STDEVP は、OVER 句や ORDER BY 句なしで使用される場合は決定的関数です。 OVER 句や ORDER BY 句と共に使用される場合は、非決定的関数です。 詳細については、「 決定的関数と非決定的関数」を参照してください。
例
A: STDEVP を使用する
この例では、AdventureWorks2022 データベースの SalesPerson
テーブル内のすべてのボーナス額を母集団とした標準偏差が返されます。
SELECT STDEVP(Bonus)
FROM Sales.SalesPerson;
GO
例: Azure Synapse Analytics、Analytics Platform System (PDW)
B: STDEVP を使用する
次の例は、テーブル dbo.FactSalesQuota
の販売ノルマの値の STDEVP
を返します。 最初の列にはすべての個別値の標準偏差が含まれ、2 番目の列には重複値を含むすべての値の標準偏差が含まれます。
-- Uses AdventureWorks
SELECT STDEVP(DISTINCT SalesAmountQuota)AS Distinct_Values, STDEVP(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;SELECT STDEVP(DISTINCT Quantity)AS Distinct_Values, STDEVP(Quantity) AS All_Values
FROM ProductInventory;
結果セットは次のとおりです。
Distinct_Values All_Values
---------------- ----------------
397676.79 397226.44
C: OVER で STDEVP を使用する
次の例は、暦年の各四半期に対する販売ノルマの値の STDEVP
を返します。 ORDER BY
句の OVER
によって STDEVP
が順序付けされ、ORDER BY
ステートメントの SELECT
によって結果セットが順序付けされることに注目してください。
-- Uses AdventureWorks
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,
STDEVP(SalesAmountQuota) OVER (ORDER BY CalendarYear, CalendarQuarter) AS StdDeviation
FROM dbo.FactSalesQuota
WHERE EmployeeKey = 272 AND CalendarYear = 2002
ORDER BY CalendarQuarter;
結果セットは次のとおりです。
Year Quarter SalesQuota StdDeviation
---- ------- ---------------------- -------------------
2002 1 91000.0000 0.00
2002 2 140000.0000 24500.00
2002 3 70000.0000 29329.55
2002 4 154000.0000 34426.55