PERCENTILE_CONT(Transact-SQL)

SQL Server 2012에서 열 값의 연속 분포를 기반으로 백분위수를 계산합니다. 결과는 보간되며 열의 특정 값과 같지 않을 수 있습니다.

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

구문

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

인수

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

  • WITHIN GROUP ( ORDER BY order_by_expression [ ASC | DESC ])
    정렬할 숫자 값 목록을 지정하고 백분위수를 계산합니다. order_by_expression은 하나만 허용됩니다. 식은 정확한 숫자 형식(int, bigint, smallint, tinyint, numeric, bit, decimal, smallmoney, money) 또는 근사치 숫자 형식(float, real)이어야 합니다. 다른 데이터 형식은 허용되지 않습니다. 기본 정렬 순서는 오름차순입니다.

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

반환 형식

float(53)

호환성 지원

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

일반적인 주의

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

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_DISC(Transact-SQL)