모두CBT

데이터베이스의 EMP 테이블에서 부서별로 급여의 평균을 구하되 평균이 … | [멀티미디어콘텐츠제작전문가 필기] 22년 1회차 기출문제 상세 페이지

1[멀티미디어콘텐츠제작전문가 필기] 22년 1회차
데이터베이스의 EMP 테이블에서 부서별로 급여의 평균을 구하되 평균이 20000 이상인 부서만 조회하는 SQL 명령으로 옳은 것은? (단, 부서 : DEPTNO, 급여 : SALARY이다.)
1
SELECT DEPTNO, AVG(SALARY) FROM EMP GROUP BY DEPTNO HAVING AVG(SALARY) >= 20000;
2
SELECT CEPTNO, AVG(SALARY) FROM EMP WHERE AVG(SALARY) >= 20000 GROUP BY DEPTNO;
3
SELECT DEPTNO, AVG(SALARY) FROM EMP WHERE AVG(SALARY) >= 20000;
4
SELECT DEPTNO, AVG(SALARY) FROM EMP HAVING AVG(SALARY) >= 20000;
해설

부서별 급여 평균을 구하되 평균이 20000 이상인 부서만 조회하려면 GROUP BY로 부서별 그룹화 후 HAVING으로 그룹 조건 필터링해야 한다. 정답 1번은 GROUP BY DEPTNO로 부서별 그룹을 만들고 HAVING AVG(SALARY) >= 20000으로 평균이 20000 이상인 그룹만 선택하는 올바른 구문이다.
보기 2번은 WHERE 절에 AVG 함수를 사용했는데, WHERE는 행 단위 필터링이므로 집계 함수를 쓸 수 없고, HAVING은 그룹 단위 조건이어야 한다. 3번은 GROUP BY가 없어 부서별 그룹화가 불가능하고, 4번은 GROUP BY 없이 HAVING만 사용했으므로 구문 오류다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.