ROW_NUMBER()
질문 1: 예동점이어도 행마다 고유 번호를 강제로 붙입니다.
1, 2, 3, 4
TOP-N, 페이지네이션, 한 행만 남기는 중복 제거처럼 결과 행 수를 통제할 때 적합합니다.
세 함수는 모두 같은 정렬 결과를 읽습니다. 차이는 동점 행에도 고유 번호가 필요한지, 그리고 공동 순위 뒤 번호를 비워 둘지입니다.
공통 입력
정렬 결과: 100 > 90 = 90 > 80
여기서 판단해야 하는 것은 값이 아니라, 90과 90에 어떤 순번 규칙을 적용할지입니다.
질문 1
결과 개수를 정확히 잘라야 하거나, 중복 제거처럼 행 단위 식별이 중요하면 여기서 결정됩니다.
질문 2
경쟁 순위를 그대로 보여줄지, 아니면 등급처럼 빈 번호 없이 이어 붙일지를 고릅니다.
동점이어도 행마다 고유 번호를 강제로 붙입니다.
1, 2, 3, 4
TOP-N, 페이지네이션, 한 행만 남기는 중복 제거처럼 결과 행 수를 통제할 때 적합합니다.
공동 순위를 주고, 그만큼 다음 번호를 건너뜁니다.
1, 2, 2, 4
"공동 2등이면 3등은 없다" 같은 경쟁 순위를 그대로 보여줘야 할 때 맞습니다.
공동 순위를 주되, 번호는 비우지 않고 촘촘하게 이어갑니다.
1, 2, 2, 3
등급 구간, 카테고리 번호, 그룹 수 계산처럼 다음 번호가 자연스럽게 이어져야 할 때 유리합니다.