RANK 함수
- RANK 함수는 ORDER BY를 포함한 쿼리문에서 특정 항목에 대한 순위를 구하는 함수이다. 이 때 특정범휘 (PARTITION BY) 내에서 순위를 구할수도 있고 전체 데이터에 대한 순위를 구할 수도 있다.
- 동일한 값에 대해서는 동일한 순서를 부여하게 된다.
DENSE_RANK 함수
- DENSE_RANK 함수는 동일한 순위를 하나의 건수로 취급한다.
- DENSE_RANK 함수는 공동등수를 하나의 등수로 보고 다음 등수를 매긴다.
ROW_NUMBER 함수
- ROW_NUMBER 함수는 동일한 값이라도 고유한 순위를 부여한다.
- 동일한 값의 순위를 정해야 할 때 오라클의 경우 ROWID가 적은 행이 먼저 나온다.
예시)
RANK() 는 동일한 값일 경우 같은 등수로 표기.
DENSE_RANK() 는 RANK() 랑 동일하되 공동등수를 하나의 등수로 보고 다음 등수를 매긴다.
ROW_NUMBER 는 중복 허용없이 1~5위까지 나온다.
출처
'SQL' 카테고리의 다른 글
[MSSql] index 인덱스 리빌드, 재구성(속도 향상) (0) | 2022.12.09 |
---|---|
[SQL] 서브쿼리 종류 (0) | 2022.11.01 |
[SQL] 트랜잭션의 ACID 성질 (0) | 2022.10.31 |
[SQL] 데이터 모델링 - 관계 (Relationship) (0) | 2022.10.31 |
[SQL] 정규화(Normalization)와 반정규화(De-Normalization) (0) | 2022.10.27 |
댓글