SQLDSQL 활용윈도우 함수난이도 3MCQ

SQLD 윈도우 함수 기출문제 #3760

문제

아래 SQL의 실행 결과로 가장 적절한 것은?

<사원>

사원ID부서ID사원명연봉
001100홍길동2500
002100강감찬3000
003200김유신4500
004200김선달3000
005200유학생2500
006300변사또4500
007300박문수3000
SQL
SELECT Y.사원ID, Y.부서ID, Y.사원명, Y.연봉 FROM ( SELECT 사원ID, MAX(연봉) OVER(PARTITION BY 부서ID) AS 최고연봉 FROM 사원 ) X, 사원 Y WHERE X.사원ID = Y.사원ID AND X.최고연봉 = Y.연봉;

① 사원ID 003 김유신 4500, 사원ID 006 변사또 4500 ② 사원ID 001 홍길동 2500, 사원ID 005 유학생 2500, 사원ID 007 박문수 3000 ③ 사원ID 002 강감찬 3000, 사원ID 003 김유신 4500, 사원ID 006 변사또 4500 ④ 사원ID 003 김유신 4500

정답

3

해설

정답: 3. 부서별 최고 연봉은 100부서 3000, 200부서 4500, 300부서 4500이므로 해당 연봉을 받는 강감찬, 김유신, 변사또가 조회된다.

오답 풀이

  • 1번: 100부서의 최고 연봉자인 강감찬이 누락되었다.
  • 2번: 부서별 최저 또는 다른 기준의 결과이다.
  • 3번: 각 부서별 최고 연봉자를 모두 포함한다.
  • 4번: 200부서 최고 연봉자만 포함되어 부족하다.

보충 개념 MAX(연봉) OVER(PARTITION BY 부서ID)는 각 사원 행에 해당 부서의 최고 연봉을 함께 표시한다. 이후 자신의 연봉이 부서 최고 연봉과 같은 행만 필터링하면 부서별 최고 연봉자를 구할 수 있다.

SQLD 시험 준비 가이드

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

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

[SQLD] 윈도우 함수 SQL 활용 기출 #3760 | 문어CBT