SQL/문제풀이

서브쿼리 기초 3 *

데이터분석가 이채은 2024. 12. 27. 19:17

문제 3: 특정 날짜 이후의 거래 내역

데이터셋 1: transactions

transaction_id customer_id date amount
1 101 2023-01-01 200
2 102 2023-03-15 500
3 103 2023-02-10 300
4 101 2023-04-20 400
5 102 2023-05-25 600

 

데이터셋 2: customers

customer_id name
101 Alice
102 Bob
103 Charlie

 

문제

'Alice' 고객이 거래한 가장 최근 날짜 이후에 거래한 모든 고객의 이름과 거래 내역을 출력하세요.

 

CREATE TABLE transactions (
    transaction_id INT PRIMARY KEY,
    customer_id INT,
    date DATE,
    amount INT
);

CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    name VARCHAR(50)
);

INSERT INTO transactions (transaction_id, customer_id, date, amount) VALUES
(1, 101, '2023-01-01', 200),
(2, 102, '2023-03-15', 500),
(3, 103, '2023-02-10', 300),
(4, 101, '2023-04-20', 400),
(5, 102, '2023-05-25', 600);

INSERT INTO customers (customer_id, name) VALUES
(101, 'Alice'),
(102, 'Bob'),
(103, 'Charlie');
SELECT c.name, t.date, t.amount
FROM transactions t
JOIN customers c ON t.customer_id = c.customer_id
WHERE t.date > (
    SELECT MAX(t2.date)
    FROM transactions t2
    JOIN customers c2 ON t2.customer_id = c2.customer_id
    WHERE c2.name = 'Alice'
);