본문 바로가기

SQL14

실전 문제 풀이 (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.
조건 처리 함수 - MySQL 조건 처리 함수 - 조건에 따라 다른 값을 반환하는 함수 - 왜 사용하는 가?조건에 따라 다른 값을 조회해야할 때 사용집계함수 (AVG, COUNT 등)와 함께 조건을 걸고 싶을 때 사용쿼리 내에서 복잡한 조건 분기를 간단히 표현하고 싶을 때 사용 - 조건 처리 함수의 종류함수 이름설명IF(조건, A, B)조건이 참이면 A, 거짓이면 B 반환IFNULL( )값이 NULL이면 다른 값으로 대체NULLIF( )두 값이 같으면 NULL, 다르면 첫 번째 값 반환CASE WHEN다중 조건을 처리하는 조건문 - 예시각 조건 처리 함수별 예시를 통해 더 자세하게 확인해 보자. 1. IF ( condition, true_value, false_value)조건이 참이면 true_value, 거짓이면 false_va.. 2025. 8. 7.