Select 쿼리의 결과를 특정 기준으로 일련번호를 매기고자 할때, 즉 순번을 부여할때 3가지 방법을 사용할 수 있다.
이 3가지 방법은 공통적으로 쿼리의 결과를 바탕으로 순번을 부여한다는 점이고 연산의 결과 자체를 바꾸지는 않는다.
다만 OREDER BY와 같은 특정 문법을 사용하여 쿼리를 재정렬하여 그 재정렬한 결과를 쿼리결과로 보여준다는 특징이 있고, 이 ORDER BY 키워드는 필수로 사용해야 한다.
차이점은 순번을 매기는 방식이나 과정에 있고, 각 차이점에 유의하면서 각 함수를 사용하면 될 것이다.
RANK() over (ORDER BY COLUMN ASC)
DENSER_RANK() over (ORDER BY COLUMN ASC)
ROW_NUMBER() over (ORDER BY COLUMN ASC)
COLUMN을 기준으로 순번을 매기는데, COLUMN이 동률이라면 같은 등수로 처리한다.
해당 등수의 수만큼 그 다음의 순번은 밀려난다(1 2 2 4..)
COLUMN을 기준으로 순번을 매기는데, COLUMN이 동률이라면 같은 등수로 처리한다.
해당 등수가 얼마나 동률인지에 상관없이, 그 다음의 순번은 동일하게 진행한다(1 2 2 3 ..)
COLUMN을 기준으로 순번을 매기고, 동률 상관없이 정렬한 결과 그대로 순번을 매긴다(1 2 3 4 ..).
각 함수의 차이점 정리 - https://log-laboratory.tistory.com/350