2021 국가직7급 데이터베이스론 8번 해설 — 그룹 함수와 GROUP BY
정답 ④번출제 쟁점 그룹 함수와 GROUP BY발문 옳지 않은 것 고르기
문제
student 테이블 스키마에서 요구에 대한 SQL 질의어로 옳지 않은 것은?
- ① SELECT deptno, AVG(score), MAX(score), MIN(score) FROM student GROUP BY deptno
- ② SELECT deptno, grade, COUNT(*), AVG(score) FROM student GROUP BY deptno, grade
- ③ SELECT deptno, AVG(score) FROM student WHERE deptno >= 100 GROUP BY deptno
- ④ SELECT grade, COUNT(*), AVG(score) FROM student WHERE COUNT(*) >= 10 GROUP BY grade ← 정답
선지별 해설
① SELECT deptno, AVG(score), MAX(score), MIN(score) FROM student GROUP BY deptno
이 선지 진술은 옳음(O)
GROUP BY deptno 기준으로 비집계 컬럼 deptno만 SELECT에 나오고 나머지는 집계함수이므로 문법상 올바른 질의이다.
② SELECT deptno, grade, COUNT(*), AVG(score) FROM student GROUP BY deptno, grade
이 선지 진술은 옳음(O)
GROUP BY deptno, grade에 맞춰 비집계 컬럼 deptno, grade가 모두 그룹 기준에 포함되어 있어 올바른 질의이다.
③ SELECT deptno, AVG(score) FROM student WHERE deptno >= 100 GROUP BY deptno
이 선지 진술은 옳음(O)
WHERE에서 행 필터(deptno>=100) 후 GROUP BY deptno로 집계하므로 문법상 올바른 질의이다.
④ SELECT grade, COUNT(*), AVG(score) FROM student WHERE COUNT(*) >= 10 GROUP BY grade
이 선지 진술은 틀림(X)
집계함수 조건은 WHERE가 아닌 HAVING 절에 써야 한다. WHERE COUNT(*) >= 10은 문법 오류이므로 옳지 않은 질의이다.
핵심 요약 (Q&A)
- Q. 2021 국가직7급 데이터베이스론 8번의 핵심 쟁점은 무엇인가?
- A. 2021 국가직7급 데이터베이스론 8번은 그룹 함수와 GROUP BY에 관한 문항으로, "옳지 않은 것"을 고르는 문제입니다.
- Q. 2021 국가직7급 데이터베이스론 8번의 정답은?
- A. 정답은 ④번입니다. 집계함수 조건은 WHERE가 아닌 HAVING 절에 써야 한다. WHERE COUNT(*) >= 10은 문법 오류이므로 옳지 않은 질의이다.