티스토리 뷰

MODEL/ORACLE

[ORACLE] 분석 함수(RANK,ROW_NUMBER,DENSE_RANK)

찰떡쿠키부스트 2017. 11. 16. 11:40

RANK() OVER ()

EX)  A-90점 , B-90점 C-80점 인 1등이 2명인 동일 순위인 경우 순위는 1,1,3 1등이 2명되고 3번째애가 3등으로 표시

즉, A=1등 B=1등 C=3등

 


ROW_NUMBER() OVER () : 제일 중요

EX)  A-90점 , B-90점 C-80점 인 1등이 2명인 동일 순위인 경우 순위는 1,2,3 

즉, A=1등 B=2등 C=3등 

A와 B가 점수가 같지만 A가 1등인 이유는 데이터를 뽑아낼때 A의 행이 더 빨리오기때문(즉,정렬방식에따라 등수가 바뀜)

즉,함수이름처럼 ROW_NUMBER.. ROW(행)의 순위에 따라 그냥 번호를 매김. 

동일 순위인 경우 1,2,3


DENSE_RANK() OVER ()

중복 RANK의 수와 무관하게 numbering을 한다.

EX)  A-90점 , B-90점 C-80점 인 1등이 2명인 동일 순위인 경우 순위는 1,1,2 1등이 2명되고 3번째애가 2등으로 표시

즉, A=1등 B=1등 C=2등

 

'MODEL > ORACLE' 카테고리의 다른 글

[ORACLE] PL/SQL  (0) 2017.11.18
[ORACLE] window 함수(PARTITION BY,ROWS)  (0) 2017.11.18
[ORACLE] 분석함수(LEAD,LAG,GREATEST,LEAST)  (0) 2017.11.16
[ORACLE] dump 파일 import & export  (2) 2017.11.16
[ORACLE] 오라클 예제 문제  (0) 2017.11.16
댓글