SQLD 기출문제 예상문제 19번
다음 문제를 풀어보세요.
다음은 온라인 쇼핑몰의 고객 구매 데이터 분석을 위한 SQL 쿼리이다. 다음 SQL을 실행했을 때 발생할 수 있는 성능 문제를 설명하고, 이를 해결하기 위한 가장 적절한 방법을 고르시오.
-- 고객별 총 구매 금액과 구매 건수를 계산하는 쿼리
SELECT C.customer_id, C.customer_name, SUM(O.order_amount) AS total_amount, COUNT(O.order_id) AS order_count
FROM CUSTOMER C
INNER JOIN ORDER O ON C.customer_id = O.customer_id
WHERE O.order_date BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY C.customer_id, C.customer_name
UNION ALL
-- 2023년에 구매 이력이 없는 고객 정보를 가져오는 쿼리
SELECT C.customer_id, C.customer_name, 0 AS total_amount, 0 AS order_count
FROM CUSTOMER C
WHERE NOT EXISTS (SELECT 1 FROM ORDER O WHERE C.customer_id = O.customer_id AND O.order_date BETWEEN '2023-01-01' AND '2023-12-31');