[프로그래머스 SQL] Lv.4 - 오프라인/온라인 판매 데이터 통합하기

2025. 3. 6. 07:45·SQL/SELECT

https://school.programmers.co.kr/learn/courses/30/lessons/131537

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 풀이

  1. 두 테이블의 데이터를 합쳐야 하므로 UNION ALL 키워드를 사용한다.
  2. 먼저 ONLINE_SALE 테이블에서 2022년 3월인 행을 필터링해 판매 날짜, 상품 ID, 유저 ID, 판매량을 조회한다.
  3. 그리고 OFFLINE_SALE 테이블에서 2022년 3월인 행을 필터링해 판매 날짜, 상품 ID, 유저 ID, 판매량을 조회한다. 이 테이블에는 유저 ID가 없으므로 그냥 NULL로 조회한다.
  4. 두 테이블 모두 판매 날짜의 경우 DATE_FORMAT 키워드로 포맷을 맞춰준다.
  5. UNION ALL 키워드로 두 테이블의 조회 결과를 합친다.
  6. 판매일, 상품 ID, 유저 ID 순서대로 오름차순 정렬한다.
SELECT
    DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
    PRODUCT_ID,
    USER_ID,
    SALES_AMOUNT
FROM
    ONLINE_SALE
WHERE
    SALES_DATE LIKE '2022-03%'
    
UNION ALL

SELECT
    DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
    PRODUCT_ID,
    NULL,
    SALES_AMOUNT
FROM
    OFFLINE_SALE
WHERE
    SALES_DATE LIKE '2022-03%'
    
ORDER BY
    1, 2, 3

'SQL > SELECT' 카테고리의 다른 글

[프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기  (0) 2025.03.06
[프로그래머스 SQL] Lv.4 - 서울에 위치한 식당 목록 출력하기  (0) 2025.03.05
[프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 2  (2) 2025.03.04
[프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 1  (0) 2025.03.04
[프로그래머스 SQL] Lv.3 - 대장균들의 자식의 수 구하기  (0) 2025.03.04
'SQL/SELECT' 카테고리의 다른 글
  • [프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기
  • [프로그래머스 SQL] Lv.4 - 서울에 위치한 식당 목록 출력하기
  • [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 2
  • [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 1
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    raid
    오블완
    토스 페이먼츠
    티스토리챌린지
    스프링
    데브코스
    백엔드 면접
    자바
    JPA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
[프로그래머스 SQL] Lv.4 - 오프라인/온라인 판매 데이터 통합하기
상단으로

티스토리툴바