728x90
RANK, DENSE_RANK, ROW_NUMBER 는 데이터 값에 순위를 매기는 함수입니다. 순위를 매기는 것은 동일하지만 사용법이 조금씩 다릅니다. 즉, 공통 순위가 있을 때 출력을 어떻게 하느냐에 따라 용도가 달라집니다. 차이는 다음과 같습니다.
함수 | 설명 | 순위 예시 |
RANK | 공통 순위를 출력하되 공통 순위만큼 건너뛰어 다음 순위를 출력한다. | 1, 2, 2, 4..... |
DENSE_RANK | 공통 순위를 출력하되 건너뛰지 않고 바로 다음 순위를 출력한다. | 1, 2, 2, 3..... |
ROW_NUMBER | 공통 순위를 없이 출력한다. | 1, 2, 3, 4..... |
![](https://blog.kakaocdn.net/dn/5IeK6/btq3m0j1CKq/f0Z9tCQJcPeiKXMWONCL80/img.png)
예시> RANK, DENSE_RANK, ROW_NUMBER 함수를 각각 이용해 employees 테이블의 salary 값이 높은 순서대로 순위를 매겨 출력해 보세요.
SELECT employee_id, salary, RANK() OVER(ORDER BY salary DESC) RANK_급여, DENSE_RANK() OVER(ORDER BY salary DESC) DENSE_RANK_급여, ROW_NUMBER() OVER(ORDER BY salary DESC) ROW_NUMBER_급여 FROM employees;
![](https://blog.kakaocdn.net/dn/boKsc7/btq3ucpuRKn/mBZK64r8Fgkqf6KqfaDNJK/img.png)
[실행결과]
![](https://blog.kakaocdn.net/dn/bzS8ee/btq3orVuoPV/RQzrBEhgTWHjvuimHf6Fuk/img.png)
728x90
'STUDY > SQL' 카테고리의 다른 글
그룹함수 - SUM, AVG 함수 (0) | 2021.05.20 |
---|---|
CASE 표현식 : 복잡한 조건 논리 처리하기 (0) | 2021.04.29 |
DECODE : 조건 논리 처리하기 (0) | 2021.04.27 |
NVL : NULL 값 처리하기 (0) | 2021.04.23 |
날짜 및 시간 형식 변환하기(TO_CHAR) (0) | 2021.04.22 |