PERCENT_RANK
집계 구문
PERCENT_RANK(expr [, expr ]...) WITHIN GROUP
(ORDER BY
expr [ DESC | ASC ]
[NULLS { FIRST | LAST } ]
[, expr [ DESC | ASC ]
[NULLS { FIRST | LAST } ]
]...
)
분석 구분
PERCENT_RANK( )
OVER ([ query_partition_clause ] order_by_clause)
참고:
구문, 의미, 그리고 제한 사항에 대한 정보는 분석 함수에 대한 내용을 참조하세요.
목적
PERCENT_RANK 함수는 누적 분포 함수인 CUME_DIST 함수와 유사합니다. PERCENT_RANK가 반환하는 값의 범위는 0부터 1까지(포함)입니다. 모든 집합의 첫 번째 행의 PERCENT_RANK 값은 0입니다. 반환 값은 NUMBER 타입입니다.
참고:
암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하십시오.
- 집계 함수로 사용되는 PERCENT_RANK는 함수의 인수 및 해당 정렬 명세로 식별된 가상의 행 r에 대해, 해당 행 r의 순위에서 1을 뺀 값을 집계 그룹 내의 행 수로 나눈 값을 계산합니다. 이 계산은 가상의 행 r이 Oracle Database가 집계를 수행하는 행 그룹에 삽입되었다고 가정하여 수행됩니다.
함수의 인수는 각 집계 그룹 내에서 하나의 가상의 행을 식별합니다. 따라서 각 집계 그룹 내에서 이들은 모두 상수 식으로 평가되어야 합니다. 상수 인수 식과 집계의 ORDER BY 절 내의 표현식은 위치별로 일치해야 합니다. 따라서 인수의 수는 동일해야 하며 그들의 유형은 호환 가능해야 합니다. - 분석 함수로 사용되는 경우에는 행 r에 대해, PERCENT_RANK는 행 r의 순위에서 1을 뺀 값을 평가 중인 행 수(전체 쿼리 결과 집합 또는 파티션)에서 나눈 값을 계산합니다.
참고:
Oracle Database Globalization Support Guide의 부록 C는 ORDER BY 절에 대해 문자 값을 비교하는 데 PERCENT_RANK가 사용하는 정렬 규칙을 정의하는 정렬 결정 규칙(collation determination rules)에 대한 정보를 제공합니다.
집계 예제
다음 예제는 급여가 $15,500이고 커미션 비율이 5%인 가상의 직원의 백분율 순위를 계산합니다. 이 예제는 샘플 테이블인 hr.employees에서 수행됩니다.
SELECT PERCENT_RANK(15000, .05) WITHIN GROUP
(ORDER BY salary, commission_pct) "Percent-Rank"
FROM employees;
Percent-Rank
------------
.971962617
분석 예제
다음 예제는 각 직원에 대해 해당 직원의 급여가 속한 부서 내에서의 백분율 순위를 계산합니다.
SELECT department_id, last_name, salary, PERCENT_RANK()
OVER (PARTITION BY department_id ORDER BY salary DESC) AS pr
FROM employees
ORDER BY pr, salary, last_name;
DEPARTMENT_ID LAST_NAME SALARY PR
------------- ------------------------- ---------- ----------
10 Whalen 4400 0
40 Mavris 6500 0
Grant 7000 0
. . .
80 Vishney 10500 .181818182
80 Zlotkey 10500 .181818182
30 Khoo 3100 .2
. . .
50 Markle 2200 .954545455
50 Philtanker 2200 .954545455
50 Olson 2100 1
. . .
출처: 오라클 레퍼런스
원문 링크: Oracle PERCENT_RANK 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] PERCENTILE_DISC - 이산 분포 백분위수 계산 (0) | 2023.08.12 |
---|---|
[오라클 레퍼런스 함수] PERCENTILE_CONT - 보간된 백분위 계산 (0) | 2023.08.12 |
[오라클 레퍼런스 함수] PATH - 상대 경로 반환 (0) | 2023.08.12 |
[오라클 레퍼런스 함수] ORA_INVOKING_USERID - 호출한 데이터베이스 사용자의 식별자(identifier) 반환 (0) | 2023.08.11 |
[오라클 레퍼런스 함수] ORA_INVOKING_USER - 호출한 데이터베이스 사용자 이름 반환 (0) | 2023.08.11 |
댓글