실전 문제 풀이 (5)
오늘은 SQL 고급 문제를 풀어보려고 합니다. GPT한테 고급문제를 요청하니까 문제마다 테이블을 주는 것이 아니라 여러 테이블을 주고 그걸 JOIN 해가면서 푸는 문제를 주더라고요. 그래서 이번엔 문제별로 테이블을 작성하는 것이 아니기 때문에 보기는 조금 불편할 수 있을 것 같습니다. - 테이블 생성-- 주문 테이블CREATE TABLE orders ( order_id INT PRIMARY KEY, user_id INT, order_date DATE, amount INT);INSERT INTO orders (order_id, user_id, order_date, amount) VALUES(1, 101, '2025-07-01', 500),(2, 101, '2025-07-03', 300..
2025. 8. 17.
실전 문제 풀이 (4)
✅ 1번. 유저별 가장 최근 주문 1건 조회하기문제 설명orders 테이블에서 각 유저의 가장 최근 주문 1건만 조회하세요.-- 테이블 생성 및 샘플 데이터CREATE TABLE orders ( order_id INT, user_id INT, order_date DATE, amount INT);INSERT INTO orders VALUES(1, 101, '2025-08-01', 500),(2, 101, '2025-08-02', 300),(3, 102, '2025-08-01', 200),(4, 103, '2025-08-01', 700),(5, 103, '2025-08-03', 400),(6, 104, '2025-08-02', 900),(7, 104, '2025-08-02', 800);WITH ran..
2025. 8. 15.
실전 문제 풀이 (3)
✅ 문제 1. 유저별 첫 주문 이후 7일 이내에 재구매한 유저 수 구하기📋 문제 설명orders 테이블에서 유저가 첫 주문을 한 날로부터 7일 이내에 재주문한 적이 있는 유저를 찾고,그런 유저의 수를 구하라.CREATE TABLE orders ( order_id INT, user_id INT, order_date DATE);INSERT INTO orders VALUES(1, 101, '2023-01-01'),(2, 101, '2023-01-05'),(3, 102, '2023-01-03'),(4, 102, '2023-01-20'),(5, 103, '2023-01-04'),(6, 103, '2023-01-10'),(7, 104, '2023-01-01'),(8, 104, '2023-01-09..
2025. 8. 13.
실전 문제 풀이 (2)
✅ 문제 1. 가장 많이 주문한 사용자 조회CREATE TABLE orders ( user_id INT, order_id INT, amount INT);INSERT INTO orders VALUES(1, 101, 500),(1, 102, 300),(2, 201, 900),(3, 301, 200),(3, 302, 400); 설명: 총 주문 금액이 가장 높은 사용자를 조회한다. 테이블 구조:orders(user_id, order_id, amount)요구사항:유저별 총 주문금액 계산총 주문금액이 가장 높은 1명만 출력user_id, total_amount 출력 SELECT user_id, SUM(amount) AS total_amountFROM ordersGROUP BY user_idORDER BY..
2025. 8. 11.
실전 문제 풀이 (1)
오늘은 지금까지 배워왔던 JOIN, GROUP BY, WINDOW FUNCTION, CTE, SUBQUERY 를 복습할겸 해당 문법들을 활용한 실전 문제 풀이에 도전하려고 한다. ✅ [문제 1] 사용자별 최근 주문 정보 조회CREATE TABLE orders ( user_id INT, order_id INT, order_date DATE, amount INT);INSERT INTO orders (user_id, order_id, order_date, amount) VALUES(1, 101, '2024-07-01', 500),(1, 102, '2024-07-05', 300),(1, 103, '2024-07-05', 600), -- 같은 날 더 큰 금액(2, 201, '2024-07-03', 200..
2025. 8. 9.