개발/MSSQL

[SQL] RANK, DENSE_RANK, ROW_NUMBER 차이점을 알아보자.

한번사는인생. 2016. 2. 15. 09:48

쿼리 작성 시에 랭크 함수를 사용할 경우가 많다.

성적ROW_NUMBERRANK DENSE_RANK 
85 1 11
85 2 11
82 3 32
80 4 43

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가지 함수가 존재하고 상황에 따라 알맞은 함수를 사용하면 될 것 같다.