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

DENSE_RANK

문법

MAIN

집계 문법

dense_rank_aggregate::=
Description of dense_rank_aggregate.gif follows

그림 설명


분석 문법

dense_rank_analytic::=
Description of dense_rank_analytic.gif follows

그림 설명


See Also:

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

목적

MAIN

DENSE_RANK()는 Rank()와 유사한 함수로ORDER BY절에 사용된 컬럼이나 표현식에 대하여 순위를 부여하는데 RANK()와 달리 동일 순위 다음의 순위는 동일 순위의 수와 상관없이 1 증가된 값을 돌려준다.

DENSE_RANK함수는 행의 행의 순서화된 그룹에서 행의 순위를 계산하고, NUMBER로써 순위를 반환한다.순서는 1로 시작하는 연속한 정수이다. 가장큰 순서 값은 쿼리에 의해 반환되는 유일한 값의 순서이다. 순서값은 동률에서 생략되지 않는다. 순서 기준에 대하여 같은 값을 가진 행은 같은 순서를 가진다. 이 함수는 top-N과 bottom-N reporting에 대하여 유용하다.

이 함수는 임의의 수치형 값을 인수로 취하고, NUMBER값을 반환한다.

DENSE_RANK()는 Rank()와 유사한 함수로ORDER BY절에 사용된 컬럼이나 표현식에 대하여 순위를 부여하는데 RANK()와 달리 동일 순위 다음의 순위는 동일 순위의 수와 상관없이 1 증가된 값을 돌려준다.


[그림] RANK()와 DENSE_RANK()의 비교

 

예제

MAIN

집계 예제

다음 예제는 샘플 테이블 oe.employees에서 급여가 $15,500이고, 수수료가 5%의 가상 종업원의 순서를 계산한다.

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

         Dense Rank
-------------------
                  3
분석 예제

다음 예제는 인사부문 또는 구매부문에서 일하는 모든 종업원의 부서명, 종업원명, 급여를 선택하고, 2개의 부서 각각에 대하여 각 유일한 급여에 대하여 순서를 계산한다. 동일한 급여에 대하여 같은 순서가 메겨진다. RANK 예제 참조.

SELECT d.department_name, e.last_name, e.salary, DENSE_RANK() 
       OVER (PARTITION BY e.department_id ORDER BY e.salary) as drank
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND d.department_id IN ('30', '40');

DEPARTMENT_NAME         LAST_NAME              SALARY      DRANK
----------------------- ------------------ ---------- ----------
Purchasing              Colmenares               2500          1
Purchasing              Himuro                   2600          2
Purchasing              Tobias                   2800          3
Purchasing              Baida                    2900          4
Purchasing              Khoo                     3100          5
Purchasing              Raphaely                11000          6
Human Resources         Marvis                   6500