학습용 기출·복원자료 분류 확인SQLD · 2023년 49회 SQL 기본 및 활용 · 43번
부서별 최고 연봉을 받는 사원을 구하는 방법으로 옳은 것은?
1
전체 회사의 MAX(연봉) 하나와 모든 사원을 비교한다.
오답 이유전사 최댓값만 구하면 각 부서의 최고 연봉자를 찾지 못한다. 따라서 1번 보기 ‘전체 회사의 MAX(연봉) 하나와 모든 사원을 비교한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
부서별 MAX(연봉)를 구해 같은 부서·같은 연봉의 사원과 비교한다.
정답 근거부서별 최댓값은 부서 키로 그룹화하거나 `PARTITION BY 부서` 분석 함수를 사용해야 한다. 동점자가 있다면 최고 연봉과 같은 모든 사원이 결과에 포함될 수 있다. 따라서 2번 보기 ‘부서별 MAX(연봉)를 구해 같은 부서·같은 연봉의 사원과 비교한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
부서별 MIN(연봉)과 같은 사원을 선택한다.
오답 이유MIN은 최고가 아니라 최저 연봉을 구한다. 따라서 3번 보기 ‘부서별 MIN(연봉)과 같은 사원을 선택한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
ORDER BY 연봉 DESC만 사용하고 모든 행을 반환한다.
오답 이유정렬만으로는 부서별 한계값을 필터링하지 않아 최고가 아닌 사원도 남는다. 따라서 4번 보기 ‘ORDER BY 연봉 DESC만 사용하고 모든 행을 반환한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 2번
핵심 판단은 2번 ‘부서별 MAX(연봉)를 구해 같은 부서·같은 연봉의 사원과 비교한다.’입니다. 부서별 최댓값은 부서 키로 그룹화하거나 `PARTITION BY 부서` 분석 함수를 사용해야 한다. 동점자가 있다면 최고 연봉과 같은 모든 사원이 결과에 포함될 수 있다.