VAR(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
지정한 식에 있는 모든 값의 통계적 분산을 반환합니다. OVER 절이 뒤에 올 수도 있습니다.
구문
-- Aggregate Function Syntax
VAR ( [ ALL | DISTINCT ] expression )
-- Analytic Function Syntax
VAR ([ 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
설명
VAR가 SELECT 문의 모든 항목에 대해 사용되는 경우, 결과 집합의 각 값은 계산에 포함됩니다. VAR와 함께 사용할 수 있는 것은 숫자 열뿐입니다. Null 값은 무시됩니다.
VAR은 OVER 및 ORDER BY 절 없이 사용되는 경우 결정적 함수이고, OVER 및 ORDER BY 절과 함께 지정되는 경우 비결정적 함수입니다. 자세한 내용은 Deterministic and Nondeterministic Functions을 참조하세요.
예제
1. VAR 사용하기
다음 예제에서는 AdventureWorks2022 데이터베이스의 SalesPerson
테이블에 있는 모든 보너스 값에 대한 분산을 반환합니다.
SELECT VAR(Bonus)
FROM Sales.SalesPerson;
GO
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
2. VAR 사용하기
다음 예에서는 테이블 dbo.FactSalesQuota
의 판매 할당량 값의 통계적 분산을 반환합니다. 첫 번째 열은 모든 고유 값의 분산을 포함하고 두 번째 열은 중복 값을 포함한 모든 값의 분산을 포함합니다.
-- Uses AdventureWorks
SELECT VAR(DISTINCT SalesAmountQuota)AS Distinct_Values, VAR(SalesAmountQuota) AS All_Values
FROM dbo.FactSalesQuota;
결과 집합은 다음과 같습니다.
Distinct_Values All_Values
---------------- ----------------
159180469909.18 158762853821.10
C. OVER와 함께 VAR 사용하기
다음 예에서는 한 해의 각 분기에 대한 판매 할당량 값의 통계적 분산을 반환합니다. OVER 절에서 ORDER BY는 통계적 분산과 SELECT 문의 ORDER BY를 결과 집합으로 정렬합니다.
-- Uses AdventureWorks
SELECT CalendarYear AS Year, CalendarQuarter AS Quarter, SalesAmountQuota AS SalesQuota,
VAR(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 null
2002 2 140000.0000 1200500000.00
2002 3 70000.0000 1290333333.33
2002 4 154000.0000 1580250000.00