SQLD 기출문제 예상문제 63번
다음 문제를 풀어보세요.
다음 중 아래 테이블 구조와 SQL 쿼리를 참고하여, 성능 관점에서 가장 효율적인 쿼리 튜닝 방안을 고르시오.
[테이블 구조]
CREATE TABLE ORDERS (
ORDER_ID INT PRIMARY KEY,
CUSTOMER_ID INT,
ORDER_DATE DATE,
PRODUCT_ID INT,
QUANTITY INT,
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID),
FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCTS(PRODUCT_ID)
);
CREATE TABLE CUSTOMERS (
CUSTOMER_ID INT PRIMARY KEY,
CUSTOMER_NAME VARCHAR(255),
CITY VARCHAR(255)
);
CREATE TABLE PRODUCTS (
PRODUCT_ID INT PRIMARY KEY,
PRODUCT_NAME VARCHAR(255),
PRICE DECIMAL(10, 2)
);
[SQL 쿼리]
SELECT
C.CUSTOMER_NAME,
SUM(O.QUANTITY * P.PRICE) AS TOTAL_SPENT
FROM
ORDERS O
JOIN
CUSTOMERS C ON O.CUSTOMER_ID = C.CUSTOMER_ID
JOIN
PRODUCTS P ON O.PRODUCT_ID = P.PRODUCT_ID
WHERE
O.ORDER_DATE BETWEEN '2023-01-01' AND '2023-12-31'
GROUP BY
C.CUSTOMER_NAME
ORDER BY
TOTAL_SPENT DESC;