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

SQLD GROUP BY/HAVING 기출문제 #90

문제

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

[ORDERS] CUSTOMER_ID, ORDER_DATE, AMOUNT 테이블에서

SQL
SELECT CUSTOMER_ID, ORDER_DATE, SUM(AMOUNT) FROM ORDERS WHERE SUM(AMOUNT) > 1000 GROUP BY CUSTOMER_ID;

① SELECT절의 ORDER_DATE가 GROUP BY절에 포함되지 않음 ② WHERE절에서 집계함수 SUM을 사용함 ③ 위 두 오류가 모두 발생함 ④ FROM절의 테이블명이 잘못됨

정답

3

해설

이 SQL에서는 두 가지 오류가 동시에 발생한다. ① SELECT절에 ORDER_DATE가 있는데 GROUP BY절에는 CUSTOMER_ID만 있어서 GROUP BY 규칙 위반이다. ② WHERE절에 집계함수 SUM(AMOUNT)를 사용했는데, 집계함수는 WHERE절이 아닌 HAVING절에서 사용해야 한다. 따라서 두 오류가 모두 존재하므로 ③번이 정답이다. ④번의 테이블명 ORDERS는 올바르다.

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

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

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