문제
다음 SQL문의 실행 결과에서 발생할 수 있는 문제점으로 가장 적절한 것은?
SQLSELECT 지역, SUM(매출액) AS 총매출 FROM 매출 WHERE 매출일자 BETWEEN '2023-01-01' AND '2023-12-31' GROUP BY 지역 HAVING SUM(매출액) > ( SELECT AVG(매출액) * 12 FROM 매출 WHERE 지역 = '서울' );
① HAVING절의 서브쿼리가 NULL을 반환할 수 있다 ② GROUP BY 없이 집계함수를 사용했다 ③ WHERE절과 HAVING절의 조건이 중복된다 ④ 서브쿼리에서 외부 쿼리의 컬럼을 잘못 참조했다
정답
1번
해설
서브쿼리에서 서울 지역 데이터가 없거나 모두 NULL인 경우 AVG(매출액)가 NULL을 반환할 수 있고, 이 경우 비교 결과가 예상과 다르게 동작할 수 있다.