Skip Headers

오라클 10g 함수
10g Release 1 (10.1)
Go to Documentation Home
HOME
Go to Book List
ORA_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
ORA_10G
Go to Feedback page
MAIL

Go to previous page
Previous
Go to next page
Next

PERCENT_RANK

문법

MAIN

집계 문법

percent_rank_aggregate::=
Description of percent_rank_aggregate.gif follows

그림 설명


분석 문법

percent_rank_analytic::=
Description of percent_rank_analytic.gif follows

D그림 설명


참 조 :

"Analytic Functions " for information on syntax, semantics, and restrictions

목적

MAIN

PERCENT_RANK함수는 그룹 수에 대한 값의 순위 퍼센트를 반환.

PERCENT_RANK함수는 CUME_DIST(누적 분포)함수와 유사하다. PERCENT_RANK에 의해 반환되는 값의 범위는 0~1(포함한)이다. 모든 집합의 최초 행은 0의 PERCENT_RANK이다. 반환되는 값은 NUMBER이다.

CUME_DIST함수와 유사한 함수이나 PARTITION별 각 row의 순위 -1/PARTITION내의 ROW의 수를 결과값으로 하며, 결과값의 범위는 0<=결과값<=1이고 집합의 첫번째 row의 PERCENT_RANK는 항상 0이 된다.


[그림] CUME_DIST()와 PERCENT_RANK의 비교

예제

 

MAIN

집계 예제

다음 예제는 hr.employees테이블에서 급여가 $15,500이고, 수수료가 5%인 불확실한 종업원의 Percent Rank를 계산한다.

SELECT PERCENT_RANK(15000, .05) WITHIN GROUP
      (ORDER BY salary, commission_pct) "Percent-Rank" 
FROM employees;

Percent-Rank
------------
  .971962617

분석 예제

다음 예제는 종업원마다 부서내에서 종업원 급여의 Percent Rank를 계산한다.

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;

DEPARTMENT_ID LAST_NAME                     SALARY         PR
------------- ------------------------- ---------- ----------
           10 Whalen                          4400          0
           40 Marvis                          6500          0
. . .
           80 Vishney                        10500 .176470588
           50 Everett                         3900 .181818182
           30 Khoo                            3100         .2
. . .
           80 Johnson                         6200 .941176471
           50 Markle                          2200 .954545455
           50 Philtanker                      2200 .954545455
           50 Olson                           2100          1
. . .