문제
다음 SQL 문의 실행 결과에 대한 설명으로 가장 적절한 것은?
SQLSELECT 지역, AVG(급여) AS 평균급여 FROM 직원 WHERE 급여 > 200 GROUP BY 지역;
① 급여가 200을 초과하는 직원들을 지역별로 그룹화하여 평균급여를 계산한다. ② 모든 직원의 지역별 평균급여를 계산한 후 200을 초과하는 것만 보여준다. ③ 지역별 평균급여가 200을 초과하는 지역만 조회한다. ④ 급여가 정확히 200인 직원들의 지역별 평균을 계산한다.
정답
1번
해설
①이 정답입니다. WHERE 절이 GROUP BY 전에 실행되므로, 먼저 급여가 200을 초과하는 직원들을 필터링한 후, 이들을 지역별로 그룹화하여 각 그룹의 평균급여를 계산합니다. ②는 HAVING 절의 동작 방식입니다. ③은 조건이 급여가 아닌 평균급여에 적용되어야 합니다. ④는 WHERE 조건을 잘못 이해한 것입니다.