오프라인/온라인 판매 데이터 통합하기

수이·7일 전
0

🟢 코드카타 / SQL

목록 보기
71/81

ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력하는 SQL문을 작성해주세요. OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요. 결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.
문제링크

조건정리

  1. 2022-03년 온라인/오프라인 판매 데이터 통합
  2. 판매날짜, 상품ID, 유저ID, 판매량 조회
    • 오프라인의 경우 유저ID 없으므로 NULL 처리
  3. 판매일기준 오름차순, 상품ID 기준 오름차순, 유저ID 기준 오름차순 정렬

풀이
프로그래머스에서 보는 첫 UNION 문제
'통합'이라는 점에서 떠오르긴 했는데 정확히 기억이 안나서 다시 복습하고 왔따
🔗 UNION 정리

온라인/오프라인 데이터가 따로이니 중복제거 할 필요 없을 것 같아서 UNION ALL ㄱㄱ

SELECT DATE_FORMAT(sales_date, '%Y-%m-%d') AS sales_date,
       product_id,
       user_id,
       sales_amount
FROM online_sale
WHERE DATE_FORMAT(sales_date, '%Y-%m') = '2022-03'

UNION ALL

SELECT DATE_FORMAT(sales_date, '%Y-%m-%d') AS sales_date,
       product_id, 
       NULL AS user_id,
       sales_amount
FROM offline_sale
WHERE DATE_FORMAT(sales_date, '%Y-%m') = '2022-03'

ORDER BY sales_date, product_id, user_id

0개의 댓글

관련 채용 정보