공통사항
문법
RANK() OVER (
[PARTITION BY <value expression1>] [,....]
ORDER BY <value expression2> [collate clause] [ASC/DESC]
[NULLS FIRST|NULLS LAST] [,...]
)
각 절의 설명
- OVER
쿼리 result set을 이용해 동작하는 함수라는 구분이다.
- PARTITION BY
result set을 value expression에 지정된 값에 근거하여 분할하는 역할 수행
- ORDER BY
각 PARTITION 내에서 DATA가 어떤 값을 기준으로 정렬될 것인가를 지정.
- NULLS FIRST | NULLS LAST
NULL이 포함된 ROW가 순서상 제일 앞에 위치할 것인지 제일 뒤에 위치할 것인지를 지정.
두 함수의 차이점
RANK() :
등수를 리턴하는 함수로 같은 등수가 있을 때는 그 등수를 제외하고 등수가 부여됨.
예) 1,2,2,4,5,5,7 ..
DENSE_RANK() :
등수를 리턴하는 함수로 같은 등수가 있더라도 그 등수를 빼지 않고 등수를 부여함.
예) 1,2,2,3,4,4,5 ..