SQLD 기출문제 예상문제 67

다음 문제를 풀어보세요.

다음은 고객 테이블과 주문 테이블의 구조이다. 고객 테이블의 custid(고객 ID)와 주문 테이블의 custid(고객 ID)를 사용하여 고객별 총 주문 금액을 계산하고, 총 주문 금액이 상위 10위 안에 드는 고객의 고객 ID와 총 주문 금액을 내림차순으로 정렬하여 출력하는 SQL 쿼리를 작성하려고 한다. 다음 중 가장 효율적인 쿼리를 고르시오.

-- 고객 테이블
CREATE TABLE CUSTOMER (
    custid INT PRIMARY KEY,
    name VARCHAR(50),
    address VARCHAR(100)
);

-- 주문 테이블
CREATE TABLE ORDERS (
    orderid INT PRIMARY KEY,
    custid INT,
    productid INT,
    orderdate DATE,
    amount INT,
    FOREIGN KEY (custid) REFERENCES CUSTOMER(custid)
);

-- 상품 테이블
CREATE TABLE PRODUCT (
    productid INT PRIMARY KEY,
    productname VARCHAR(50),
    price INT
);

INSERT INTO CUSTOMER (custid, name, address) VALUES
(1, '홍길동', '서울'),
(2, '김철수', '부산'),
(3, '이영희', '대구'),
(4, '박지성', '런던'),
(5, '손흥민', '토트넘');

INSERT INTO PRODUCT (productid, productname, price) VALUES
(101, '운동화', 50000),
(102, '셔츠', 30000),
(103, '바지', 60000),
(104, '자켓', 100000),
(105, '모자', 20000);

INSERT INTO ORDERS (orderid, custid, productid, orderdate, amount) VALUES
(1, 1, 101, '2023-01-01', 2),
(2, 1, 102, '2023-01-05', 1),
(3, 2, 103, '2023-01-10', 3),
(4, 2, 104, '2023-01-15', 1),
(5, 3, 101, '2023-01-20', 4),
(6, 3, 105, '2023-01-25', 2),
(7, 4, 102, '2023-02-01', 5),
(8, 4, 103, '2023-02-05', 2),
(9, 5, 104, '2023-02-10', 3),
(10, 5, 105, '2023-02-15', 1);