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

RANK

문법

MAIN

집계 문법

rank_aggregate::=
Description of rank_aggregate.gif follows

그림 설명


분석 문법

rank_analytic::=
Description of rank_analytic.gif follows

그림 설명


참 조 :

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

목적

MAIN

RANK함수는 값의 그룹에서 값의 순위를 계산한다. 반환되는 데이터형은 NUMBER이다.

같은 순위를 가지는 순위 기준에 대해서는 같은 값을 가진다. 오라클 데이터베이스는 동일한 행에 대해 동일한 순위를 더하고, 다음의 순위를 계산한다. 그런 이유로 RANK가 연속하지 않는 숫자일수 있다. 이 함수는 top-N과 bottom-N 리포팅에 유용하다.

예제

MAIN


집계 예제

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

SELECT RANK(15500, .05) WITHIN GROUP
   (ORDER BY salary, commission_pct) "Rank"
   FROM employees;

      Rank
----------
       105

유사하게, 종업원의 급여사이에 급여가 %15,500인 종업원의 순위를 반환한다.

SELECT RANK(15500) WITHIN GROUP 
   (ORDER BY salary DESC) "Rank of 15500" 
   FROM employees;

Rank of 15500
--------------
             4

분석 예제

다음 예제는 급여와 수수료에 근거하여 부서 80에서 종업원의 순위를 계산한다. 동일한 급여에 대해 동일 순위가 부여된다. DENSE_RANK참조.

SELECT department_id, last_name, salary, commission_pct,
   RANK() OVER (PARTITION BY department_id
   ORDER BY salary DESC, commission_pct) "Rank"
   FROM employees WHERE department_id = 80;

DEPARTMENT_ID LAST_NAME                     SALARY COMMISSION_PCT       Rank
------------- ------------------------- ---------- -------------- ----------
           80 Russell                        14000             .4          1
           80 Partners                       13500             .3          2
           80 Errazuriz                      12000             .3          3
           80 Ozer                           11500            .25          4
           80 Cambrault                      11000             .3          5
           80 Abel                           11000             .3          5
           80 Zlotkey                        10500             .2          7
           80 Vishney                        10500            .25          8
           80 Bloom                          10000             .2          9
           80 Tucker                         10000             .3         10
           80 King                           10000            .35         11
           80 Fox                             9600             .2         12
           80 Greene                          9500            .15         13
           80 Bernstein                       9500            .25         14
           80 Sully                           9500            .35         15
           80 Hall                            9000            .25         16
           80 McEwen                          9000            .35         17
           80 Hutton                          8800            .25         18
           80 Taylor                          8600             .2         19
           80 Livingston                      8400             .2         20
           80 Olsen                           8000             .2         21
           80 Smith                           8000             .3         22
           80 Cambrault                       7500             .2         23
           80 Doran                           7500             .3         24
           80 Smith                           7400            .15         25
           80 Bates                           7300            .15         26
           80 Marvins                         7200             .1         27
           80 Tuvault                         7000            .15         28
           80 Sewall                          7000            .25         29
           80 Lee                             6800             .1         30
           80 Ande                            6400             .1         31
           80 Banda                           6200             .1         32
           80 Johnson                         6200             .1         32
           80 Kumar                           6100             .1         34