다음을 통해 공유


PERCENTILE_DISC(Transact-SQL)

SQL Server의 전체 행 집합 또는 고유 파티션의 행 집합에서 정렬된 값에 대한 특정 백분위수를 계산합니다. 지정된 백분위수 값 P에 대해 PERCENTILE_DISC는 ORDER BY 절의 식 값을 정렬하고 P보다 크거나 같은 가장 작은 CUME_DIST 값(동일한 정렬 사양 기준)을 반환합니다. 예를 들어 PERCENTILE_DISC (0.5)는 식의 50번째 백분위수(즉, 중앙값)를 계산합니다. PERCENTILE_DISC는 열 값의 불연속 분포를 기반으로 백분위수를 계산하며 결과는 열의 특정 값과 같습니다.

적용 대상: SQL Server(SQL Server 2012 - 현재 버전)

항목 링크 아이콘 Transact-SQL 구문 표기 규칙(Transact-SQL)

구문

PERCENTILE_DISC ( numeric_literal ) WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ] )
    OVER ( [ <partition_by_clause> ] )

인수

  • literal
    계산할 백분위수입니다. 값은 0.0에서 1.0 사이여야 합니다.

  • WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ])
    정렬하고 백분위수를 계산할 숫자 값 목록을 지정합니다. order_by_expression은 하나만 허용됩니다. 기본 정렬 순서는 오름차순입니다.

  • OVER ( <partition_by_clause> )
    FROM 절이 생성한 결과 집합을 백분위수 함수가 적용되는 파티션으로 나눕니다. 자세한 내용은 OVER 절(Transact-SQL)을 참조하십시오. <ORDER BY 절> 및 <rows 또는 range 절>은 PERCENTILE_DISC 함수에 지정할 수 없습니다.

반환 형식

반환 형식은 order_by_expression 형식에 의해 결정됩니다.

호환성 지원

호환성 수준 110 이상에서 WITHIN GROUP은 예약 키워드입니다. 자세한 내용은 ALTER DATABASE 호환성 수준(Transact-SQL)을 참조하십시오.

일반적인 주의 사항

모든 null은 데이터 집합에서 무시됩니다.

PERCENTILE_DISC는 비결정적입니다. 자세한 내용은 결정적 함수 및 비결정적 함수를 참조하십시오.

1.기본 구문 예제

다음 예에서는 PERCENTILE_CONT 및 PERCENTILE_DISC를 사용하여 각 부서에서 직원 급여의 중앙값을 찾습니다. 이러한 함수는 같은 값을 반환하지 않을 수 있습니다. 이는 PERCENTILE_CONT는 데이터 집합에 있는지 여부에 관계없이 적절한 값을 보간하는 반면, PERCENTILE_DISC는 항상 해당 집합에서 실제 값을 반환하기 때문입니다.

USE AdventureWorks2012;

SELECT DISTINCT Name AS DepartmentName
      ,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY ph.Rate) 
                            OVER (PARTITION BY Name) AS MedianCont
      ,PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY ph.Rate) 
                            OVER (PARTITION BY Name) AS MedianDisc
FROM HumanResources.Department AS d
INNER JOIN HumanResources.EmployeeDepartmentHistory AS dh 
    ON dh.DepartmentID = d.DepartmentID
INNER JOIN HumanResources.EmployeePayHistory AS ph
    ON ph.BusinessEntityID = dh.BusinessEntityID
WHERE dh.EndDate IS NULL;

다음은 결과 집합의 일부입니다.

DepartmentName        MedianCont    MedianDisc

--------------------   ----------   ----------

Document Control       16.8269      16.8269

Engineering            34.375       32.6923

Executive              54.32695     48.5577

Human Resources        17.427850    16.5865

참고 항목

참조

PERCENTILE_CONT(Transact-SQL)