SQLDSQL 기본GROUP BY/HAVING난이도 2MCQ

SQLD GROUP BY/HAVING 기출문제 #568

문제

다음 SQL에서 오류가 발생하는 이유로 가장 적절한 것은?

SQL
SELECT DEPT, COUNT(*) FROM EMP WHERE COUNT(*) > 2 GROUP BY DEPT;

① WHERE 절에 집계함수를 사용했기 때문 ② COUNT(*)는 SELECT 절에만 사용할 수 있기 때문 ③ GROUP BY 절이 WHERE 절보다 뒤에 위치했기 때문 ④ DEPT가 GROUP BY 절에 포함되어 있기 때문

정답

1

해설

① WHERE 절에는 집계함수를 사용할 수 없다. 집계함수를 이용한 조건은 HAVING 절에서 사용해야 한다. WHERE는 그룹화 이전의 개별 행을 필터링하는 반면, HAVING은 그룹화 이후의 그룹을 필터링한다. ② COUNT(*)는 HAVING 절에서도 사용 가능하다. ③ GROUP BY의 위치는 올바르다(WHERE 다음에 GROUP BY가 오는 것이 정상). ④ DEPT는 SELECT 절에 있으므로 GROUP BY에 포함되어야 하며, 이는 올바른 구문이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] GROUP BY/HAVING SQL 기본 기출 #568 | sqldpass