inblog logo
|
sxias
    Programmers_SQLSELECTGROUP BY

    [Programmers_SQL] 15. 오프라인/온라인 판매 데이터 통합하기

    문정준's avatar
    문정준
    Mar 12, 2025
    [Programmers_SQL] 15. 오프라인/온라인 판매 데이터 통합하기
    Contents
    1. 문제 설명2. 문제3. 예시4. 문제 풀이4. 결과 확인
     
    💡
    프로그래머스 SELECT 14. 오프라인/온라인 판매 데이터 통합하기

    1. 문제 설명

    notion image
     

    2. 문제

    notion image
     

    3. 예시

    notion image

    4. 문제 풀이

    -- 코드를 입력하세요 select date_format(sales_date, '%Y-%m-%d') sales_date, product_id, user_id, sales_amount from ( select sales_date, product_id, user_id, sales_amount from online_sale union all select sales_date, product_id, null user_id, sales_amount from offline_sale ) as total_sale where sales_date between '2022-03-01' and '2022-03-31' group by sales_date, product_id, user_id order by sales_date, product_id, user_id;
    • 1 Line : sales_date, product_id, user_id, sales_amount를 조회
      • sales_date의 date 표기에 유의 : date_format
      • SELECT date_format(sales_date, ‘%Y-%m-%d’) sales_date, product_id, user_id, sales_amount
    • 2 Line : ONLINE_SALE, OFFLINE_SALE의 테이블 조회 결과를 둘 다 합쳐서 가져와야 함
      • UNION ALL 사용 : 별칭 부여 필요
      • from ( ~~~~ ) as total_sale
    • 3 Line : sales_date, product_id, user_id, sales_amount를 조회
      • SELECT sales_date, product_id, user_id, sales_amount
    • 4 Line : ONLINE_SALE 테이블에서 조회
      • from ONLINE_SALE
    • 5 Line : 아래 결과와 합함
      • union all
    • 6 Line : sales_date, product_id, user_id, sales_amount를 조회
      • 오프라인 판매의 경우 user_id를 null로 처리
      • SELECT sales_date, product_id, null user_id, sales_amount
    • 7 Line : OFFLINE_SALE 테이블에서 조회
      • from OFFLINE_SALE
    • 8 Line : 2022년 3월 사이의 판매 데이터만 조회
      • where sales_date between ‘2022-03-01’ and ‘2022-03-31’
    • 9 Line : 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재
      • 날짜, 상품 ID, 회원 ID로 그룹화
      • group by sales_date, product_id, user_id
    • 10 Line : 판매일을 기준으로 오름차순, 상품 ID를 기준으로 오름차순, 유저 ID를 기준으로 오름차순 정렬
      • order by sales_date, product_id, user_id

    4. 결과 확인

    notion image
    notion image
    Share article
    Contents
    1. 문제 설명2. 문제3. 예시4. 문제 풀이4. 결과 확인

    Sxias ㆍ a32176740@gmail.com

    RSS·Powered by Inblog