less than 1 minute read

📜문제


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

image

📜정답


    SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d')AS SALES_DATE,
    PRODUCT_ID,USER_ID,SALES_AMOUNT  
    FROM ONLINE_SALE 
    WHERE LEFT(SALES_DATE,7)='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 LEFT(SALES_DATE,7)='2022-03'

    ORDER BY SALES_DATE,PRODUCT_ID,USER_ID ASC

📜노트


OFFLINE_SALE 테이블의 USER_IDNULL값을 가져야 하므로 NULL AS USER_ID로 조회한다.
UNION을 사용해 쿼리문을 합칠 때 전체 결과 집합에 적용되므로 마지막에 해주는 것이 좋다.

  • LEFT(문자열,길이)

왼쪽부터 원하는 길이만큼 문자를 자르는 함수이다. LEFT(SALES_DATE,7)는 SALES_DATE의 문자열 값을 7만큼 자른 2022-03이 나온다. 오른쪽부터 자르길 원하면 RIGHT()함수를 사용할 수 있다.

  • DATE_FORMAT(컬럼명,’원하는 날짜 형식’)