미소를뿌리는감자의 코딩
[프로그래머스 2024/01/29] 오프라인/온라인 판매 데이터 통합하기 본문
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
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 2024/11/4] 2024 KAKAO WINTER INTERNSHIP > 가장 많이 받은 선물 (1) | 2024.11.04 |
---|---|
[프로그래머스 2024/06/17] 단어 변환 - python (0) | 2024.06.17 |
[프로그래머스 2024/01/26] 상품 별 오프라인 매출 구하기 (1) | 2024.01.26 |
[프로그래머스 2024/01/26] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.01.26 |
[프로그래머스 2024/01/26] 가격대 별 상품 개수 구하기 (0) | 2024.01.26 |