20

ROW_NUMBER(): 무조건 연속 번호

Day 1: 행 순서대로 번호 매기고 싶은데

학습 목표

ROW_NUMBER의 동작을 이해한다 PARTITION BY와 조합하는 방법을 익힌다

ROW_NUMBER()란?

무조건 1, 2, 3, 4... 연속 번호를 매긴다. 동점이어도 다른 번호!


기본 사용

에디터 로딩 중...

결과:

에디터 로딩 중...

동점인 이영희와 강미영이 다른 순위(4, 5)를 받았다.


부서별 순위 (PARTITION BY)

에디터 로딩 중...

결과:

에디터 로딩 중...

부서가 바뀌면 순위가 리셋된다!


실전: 부서별 상위 3명 선택

에디터 로딩 중...

CTE + WHERE로 상위 N명 필터링!


주의: ORDER BY 없으면?

에디터 로딩 중...

결과는 비결정적. 실행할 때마다 순서가 달라질 수 있다. 항상 ORDER BY를 명시하자.


ROW_NUMBER 활용 사례

상황쿼리
페이지네이션WHERE rn BETWEEN 11 AND 20
중복 제거WHERE rn = 1 (그룹별 첫 번째만)
Top NWHERE rn <= N
샘플링WHERE rn % 10 = 1 (10개 중 1개)