미소를뿌리는감자의 코딩

[프로그래머스 2024/01/29] 오프라인/온라인 판매 데이터 통합하기 본문

코딩 테스트/프로그래머스

[프로그래머스 2024/01/29] 오프라인/온라인 판매 데이터 통합하기

미뿌감 2024. 1. 29. 17:03
728x90

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 접근 방법

처음에는 column의 개수가 맞지 않아서 어떻게 합칠 수 있을까 많이 고민했었다.

select NULL as USER_ID를 통해 column을 추가할 수 있다는 사실을 알게 되었다.

 

이후 union all로 두개의 table을 합쳐주고, 출력하라는 대로 출력해주었지만,

틀렸다고 말해주었다.

 

(case
     when a.USER_ID is NULL then 'NULL'
     else a.USER_ID
       end)

 

조건 중에서 OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL로 표시해주세요. 가 있다.

 

예시 출력도 

 

이런식으로 되어 있어서 문자열을 넣어주었는데, 실상은, 

 

문자열 NULL이 아니라 그냥 NULL 이었다.

하지만, 그냥 NULL인 상태로 출력하게 되면, 출력이 다음과 같이 되게 된다.

 

NULL인 부분이 공백처럼 출력되게 된다.

 

이 부분에서 고민도 많이하고 삽질도 많이 했기에, 문제에 대해서 조금 아쉬움이 있다.

이런 부분을 언급을 해주거나, 결과 데이터 모양을 바꾸어주면 좋지 않을까 싶다.

다음부터는 'NULL' 이 안되면 그냥 NULL로도 넣어서 출력해 보아야겠다.

 

2. 코드

SELECT substring(a.SALES_DATE,1,10) as SALES_DATE, 
       a.PRODUCT_ID, 
       a.USER_ID, 
       a.SALES_AMOUNT from
        (SELECT ONLINE_SALE_ID AS SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE
        FROM ONLINE_SALE
         
    UNION ALL
         
        SELECT OFFLINE_SALE_ID AS SALE_ID, NULL AS USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE
        FROM OFFLINE_SALE) a

    order by a.SALES_DATE, a.PRODUCT_ID, a.USER_ID

 

728x90