본문 바로가기
Develop/DATABASE

오라클)집계 함수 - 순위 함수(RANK, DENSE_RANK, CUME_DIST, PERCENT_RANK)

by 걸어다니는 종합병원 2022. 10. 29.
반응형

순위 함수는 expr로 가상의 행을 생성하고, 가상의 행에 해당하는 순위를 반환

sal을 오름차순으로 정렬


RANK 함수 - RANK ( expr [, expr]... ) WITH GROUP ( ORDER BY expr [, expr]...)

expr에 대한 순위를 반환.

expr이 동일하면 동순위 부여하며, 다음 순위는 동순위의 수만큼 건너뛴다.

SELECT * FROM emp WHERE deptno = 30 order by sal, comm;


sal c1   sal comm c2
950 1 950   1
1250 2 1250 500 2
1250 2 1250 1400 3
1500 4 1500 0 4
1500 4 1500 500 5
1600 6 1600 300 6
2850 7 2850   7

 


DENSE_RANK 함수 - DENSE_RANK (expr [, expr]...) WITHIN GROUP (ORDER BY expr [, expr]...)

expr에 대한 순위를 반환.

expr이 동일하면 동순위를 부여, 다음 순위는 동순위에 이어서 부여

sal c1   sal comm c2
950 1 950   1
1250 2 1250 500 2
1250 2 1250 1400 3
1500 3 1500 0 4
1500 3 1500 500 5
1600 4 1600 300 6
2850 5 2850   7

CUME_DIST 함수 - CUME_DIST ( expr [, expr]...) WITHIN GROUP (ORDER BY expr [, expr]....)

expr의 누적 분포 값을 반환.

누적 분포 값은 0 < y <= 1의 범위를 가짐

 

sal c1   sal comm c2
950 0.14 950   0.14
1250 0.43 1250 500 0.29
1250 0.43 1250 1400 0.43
1500 0.71 1500 0 0.57
1500 0.71 1500 500 0.71
1600 0.86 1600 300 0.86
2850 1.00 2850   1.00

PERCENT_RANK 함수 - PERCENTER_RANK( expr [, expr]...) WITHIN GROUP (ORDER BY expr [, expr]....)

expr의 백분위 순위 값을 반환.

백분위 순위 값은 0 <= y <= 1

sal c1   sal comm c2
950 0.00 950   0.00
1250 0.17 1250 500 0.17
1250 0.17 1250 1400 0.33
1500 0.50 1500 0 0.50
1500 0.50 1500 500 0.67
1600 0.83 1600 300 0.83
2850 1.00 2850   1.00
반응형

댓글