개발/MSSQL
[SQL] RANK, DENSE_RANK, ROW_NUMBER 차이점을 알아보자.
한번사는인생.
2016. 2. 15. 09:48
쿼리 작성 시에 랭크 함수를 사용할 경우가 많다.
성 | 성적 | ROW_NUMBER | RANK | DENSE_RANK |
강 | 85 | 1 | 1 | 1 |
김 | 85 | 2 | 1 | 1 |
홍 | 82 | 3 | 3 | 2 |
이 | 80 | 4 | 4 | 3 |
SELECT RANK() OVER (PARTITION BY 성ORDER BY 성적) AS 'RANK'
, DENSE_RANK() OVER (PARTITION BY 성ORDER BY 성적) AS 'DENSE_RANK'
, ROW_NUMBER() OVER (PARTITION BY 성ORDER BY 성적) AS 'ROW_NUMBER'
3가지 함수가 존재하고 상황에 따라 알맞은 함수를 사용하면 될 것 같다.