SQLDSQL 활용난이도 2MCQ

SQLD SQL 활용 기출문제 #931

문제

다음 테이블에서 부서별 직급 순서대로 번호를 매기는 ROW_NUMBER 함수의 결과는?

[STAFF] DEPT: HR,HR,IT,IT / POSITION: M,S,M,S / NAME: A,B,C,D

SQL
SELECT DEPT, POSITION, NAME, ROW_NUMBER() OVER(PARTITION BY DEPT ORDER BY POSITION) AS RN FROM STAFF;

① HR부서 M=1, S=2 / IT부서 M=1, S=2 ② HR부서 M=2, S=1 / IT부서 M=2, S=1 ③ 전체적으로 1,2,3,4 순서대로 ④ POSITION별로 1,1,2,2 순서

정답

1

해설

ROW_NUMBER() OVER(PARTITION BY DEPT ORDER BY POSITION)는 부서별로 파티션을 나누고 POSITION으로 정렬하여 순번을 매깁니다. 알파벳 순서로 M이 S보다 먼저 오므로, 각 부서에서 M=1, S=2가 됩니다. ②는 정렬 순서를 잘못 이해한 경우, ③은 PARTITION BY를 무시한 경우, ④는 ROW_NUMBER 대신 다른 함수의 결과입니다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] SQL 활용 기출 #931 | sqldpass