부서별 급여 상위 2명을 정확히 두 행씩 뽑는다. 급여 동점자가 있어도 행 수를 늘리지 않고 결과를 재현 가능하게 만들 SQL 설계는?
ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY salary DESC, emp_id ASC)
emp_id는 부서 안에서 유일하다.
정답 1번
PARTITION BY로 부서마다 번호를 다시 시작하고 salary와 유일 키로 완전한 순서를 만든다. ROW_NUMBER는 동점에도 하나의 번호를 주므로 바깥에서 rn<=2를 적용하면 부서별 정확히 두 행이다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-21