Database/SQL Server

SQL Server - RANK & DENSE_RANK 함수

청렴결백한 만능 재주꾼 2020. 12. 16. 06:57
반응형

RANK and DENSE_RANK functions

 - 2005년에 소개되었다.Introduced in SQL Server 2005

 - ORDER BY절에서 지정한 행 순서에 따라 1부터 시작하는 순위를 리턴한다. Return a rank starting at 1 based on the ordering of rows imposed by the ORDER BY clause

 - ORDER BY clause is required

 - PARTITION BY clause is optional

 - 파티션으로 분리되어있으면 파티션이 바뀔때 1로 리셋이 된다.When the data is partitioned, rank is reset to 1 when the partition changes

 

Difference between RANK and DENSE_RANK functions

RANK 함수는 중복이 있으면 스킵이 된다. 5명 중 2등이 두명이면 3등은 없다. [ 1등, 2등, 2등, 4등, 5등]

하지만 DENSE_RANK는 스킵이 되지 않고 다음 순위로 체크한다. [1등, 2등, 2등, 3등, 4등]

RANK function skips ranking(s) if there is a tie where as DENSE_RANK will not 

 

 

Syntax:

RANK() OVER (ORDER BY Col1, Col2, ...)
DENSE_RANK() OVER (ORDER BY Col1, Col2, ...)
반응형