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


VARP (Transact-SQL)

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

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

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

Синтаксис

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

Аргументы

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

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

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

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

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

float

Замечания

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

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

Примеры

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

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

SELECT VARP(Bonus)  
FROM Sales.SalesPerson;  
GO  

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

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

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

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

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

Distinct_Values   All_Values
----------------  ----------------
158146830494.18   157788848582.94

C. Использование функции VARP с предложением OVER

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

-- Uses AdventureWorks  
  
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,  
       VARP(SalesAmountQuota) OVER (ORDER BY CalendarYear, CalendarQuarter) AS Variance  
FROM dbo.FactSalesQuota  
WHERE EmployeeKey = 272 AND CalendarYear = 2002  
ORDER BY CalendarQuarter;  

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

Year  Quarter  SalesQuota              Variance
----  -------  ----------------------  -------------------
2002  1         91000.0000             0.00
2002  2        140000.0000             600250000.00
2002  3         70000.0000             860222222.22
2002  4        154000.0000             1185187500.00

См. также

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