문제
다음 SQL 문의 실행 결과에 대한 설명으로 가장 적절한 것은?
SQLSELECT 직급, AVG(급여) AS 평균급여 FROM 직원 WHERE 입사일 >= '2020-01-01' GROUP BY 직급 HAVING AVG(급여) > 4000 ORDER BY 평균급여 ASC;
① 2020년 이후 입사한 직원들의 직급별 평균급여를 평균급여 내림차순으로 표시 ② 2020년 이후 입사한 직원들 중 평균급여가 4000 초과인 직급을 평균급여 오름차순으로 표시 ③ 모든 직원의 직급별 평균급여가 4000 초과인 직급을 평균급여 오름차순으로 표시 ④ 2020년 이후 입사한 모든 직급을 평균급여와 함께 오름차순으로 표시
정답
2번
해설
WHERE절로 2020년 이후 입사한 직원을 먼저 필터링하고, GROUP BY로 직급별 그룹화, HAVING절로 평균급여가 4000 초과인 그룹만 선택, ORDER BY ASC로 평균급여 오름차순 정렬한다. ①은 정렬 순서가 틀렸고, ③은 WHERE 조건을 무시했으며, ④는 HAVING 조건을 빠뜨렸다.