Поделиться через


STDEV (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric

Возвращает статистическое стандартное отклонение всех значений в указанном выражении.

Соглашения о синтаксисе Transact-SQL

Синтаксис

-- Aggregate Function Syntax   
STDEV ( [ ALL | DISTINCT ] expression )  
  
-- Analytic Function Syntax   
STDEV ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)  

Аргументы

ALL
Применяет функцию ко всем значениям. ALL является параметром по умолчанию.

DISTINCT
Указывает, что учитывается каждое уникальное значение.

выражение
Числовое выражение. Агрегатные функции и вложенные запросы не допускаются. expression — выражение категории точного числового или приблизительного числового типа данных, за исключением типа данных bit.

OVER ( [ partition_by_clause ] order_by_clause)
partition_by_clause делит результирующий набор, полученный с помощью предложения FROM, на секции, к которым применяется функция. Если этот параметр не указан, функция обрабатывает все строки результирующего набора запроса как отдельные группы. order_by_clause определяет логический порядок, в котором выполняется операция. Аргумент order_by_clause является обязательным. Дополнительные сведения см. в статье Предложение OVER (Transact-SQL).

Типы возвращаемых данных

float

Замечания

Если функция STDEV используется для всех элементов в инструкции SELECT, то в вычисление включается каждое значение результирующего набора. Функцию STDEV можно использовать только для числовых столбцов. Значения NULL пропускаются.

STDEV — это детерминированная функция, если она используется без предложений OVER и ORDER BY. Она не детерминирована при использовании с предложениями OVER и ORDER BY. Дополнительные сведения см. в разделе Deterministic and Nondeterministic Functions.

Примеры

А. Использование функции STDEV

В следующем примере возвращается стандартное отклонение для всех значений бонусов в таблице в SalesPerson базе данных AdventureWorks2022.

SELECT STDEV(Bonus)  
FROM Sales.SalesPerson;  
GO  

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

Б. Использование функции STDEV

В приведенном ниже примере возвращается стандартное отклонение значений квот на продажу в таблице dbo.FactSalesQuota. Первый столбец содержит стандартное отклонение всех уникальных значений, а второй — стандартное отклонение всех значений, включая повторяющиеся.

-- Uses AdventureWorks  
  
SELECT STDEV(DISTINCT SalesAmountQuota)AS Distinct_Values, STDEV(SalesAmountQuota) AS All_Values  
FROM dbo.FactSalesQuota;  

Вот результирующий набор.

Distinct_Values   All_Values
----------------  ----------------
398974.27         398450.57

C. Использование STDEV с предложением OVER

В приведенном ниже примере возвращается стандартное отклонение для значений квот на продажу в каждом квартале календарного года. Обратите внимание на то, что ORDER BY в предложении OVER упорядочивает STDEV, а ORDER BY в инструкции SELECT упорядочивает результирующий набор.

-- Uses AdventureWorks  
  
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,  
       STDEV(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             null
2002  2        140000.0000             34648.23
2002  3         70000.0000             35921.21
2002  4        154000.0000             39752.36

См. также

Агрегатные функции (Transact-SQL)
Предложение OVER (Transact-SQL)