SQLD 기출문제 예상문제 390

다음 문제를 풀어보세요.

다음 중 아래 SQL에 대한 설명으로 가장 적절한 것을 고르시오.

[테이블 구조]

CREATE TABLE PRODUCTS (
    PRODUCT_ID INT PRIMARY KEY,
    PRODUCT_NAME VARCHAR(100),
    CATEGORY_ID INT,
    PRICE DECIMAL(10, 2),
    LAST_UPDATED_DATE DATE
);

CREATE TABLE CATEGORIES (
    CATEGORY_ID INT PRIMARY KEY,
    CATEGORY_NAME VARCHAR(100),
    DISCOUNT_RATE DECIMAL(5, 2)
);

[초기 데이터]

INSERT INTO CATEGORIES (CATEGORY_ID, CATEGORY_NAME, DISCOUNT_RATE) VALUES (1, 'Electronics', 0.10);
INSERT INTO CATEGORIES (CATEGORY_ID, CATEGORY_NAME, DISCOUNT_RATE) VALUES (2, 'Books', 0.05);
INSERT INTO CATEGORIES (CATEGORY_ID, CATEGORY_NAME, DISCOUNT_RATE) VALUES (3, 'Apparel', 0.15);
INSERT INTO CATEGORIES (CATEGORY_ID, CATEGORY_NAME, DISCOUNT_RATE) VALUES (4, 'Food', 0.00);

INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (101, 'Laptop', 1, 1200.00, '2023-01-01');
INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (102, 'SQL Book', 2, 50.00, '2023-01-01');
INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (103, 'T-Shirt', 3, 30.00, '2023-01-01');
INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (104, 'Monitor', 1, 300.00, '2023-01-01');
INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (105, 'Java Book', 2, 45.00, '2023-01-01');
INSERT INTO PRODUCTS (PRODUCT_ID, PRODUCT_NAME, CATEGORY_ID, PRICE, LAST_UPDATED_DATE) VALUES (106, 'Snacks', 4, 10.00, '2023-01-01');

[SQL 쿼리]

UPDATE PRODUCTS P
SET P.PRICE = P.PRICE * (1 - (SELECT C.DISCOUNT_RATE FROM CATEGORIES C WHERE C.CATEGORY_ID = P.CATEGORY_ID)),
    P.LAST_UPDATED_DATE = CURRENT_DATE
WHERE P.CATEGORY_ID IN (SELECT CATEGORY_ID FROM CATEGORIES WHERE DISCOUNT_RATE > 0);