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)