다음을 통해 공유


VARP(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 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
각 고유 값을 고려하도록 지정합니다.

expression
bit 데이터 형식을 제외한 정확한 수치 또는 근사치 데이터 형식 범주의 expression입니다. 집계 함수와 하위 쿼리는 허용되지 않습니다.

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을 참조하세요.

예제

1. VARP 사용하기

다음 예제에서는 AdventureWorks2022 데이터베이스의 테이블에 있는 SalesPerson 모든 보너스 값에 대한 모집단의 분산을 반환합니다.

SELECT VARP(Bonus)  
FROM Sales.SalesPerson;  
GO  

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

2. VARP 사용하기

다음 예에서는 dbo.FactSalesQuota 테이블의 판매 할당량 값의 VARP를 반환합니다. 첫 번째 열은 모든 고유 값의 분산을 포함하고 두 번째 열은 중복 값을 포함한 모든 값의 분산을 포함합니다.

-- 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. OVER와 함께 VARP 사용하기

다음 예에서는 한 해의 각 분기에 대한 판매 할당량 값 중 VARP를 반환합니다. OVER 절에서 ORDER BY는 통계적 분산과 SELECT 문의 ORDER BY를 결과 집합으로 정렬합니다.

-- 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)