본문 바로가기

프로그래머스

(MySQL / 프로그래머스) 오프라인/온라인 판매 데이터 통합하기

728x90
반응형
SMALL


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


 



문제 출처

코딩테스트 연습 - 오프라인/온라인 판매 데이터 통합하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr



Code

SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM (
   SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
   FROM ONLINE_SALE
       UNION ALL
   SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
   FROM OFFLINE_SALE
   ) A
   WHERE SALES_DATE LIKE CONCAT("2022-03", "%") 
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID


#ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 
#---> FROM 테이블을 알려주고있다.
#2022년 3월의 
#---> WHERE 조건문을 알려주고있다.
#오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력
#--->SELECT문을 알려주고있다.
#OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시
#--->SELECT 조건문을 말해주고있다.
#판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.
#--->정렬방법에대해 알려주고있다.


Code설명 & TIPS


풀이 방법!

 

ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 

---> FROM 테이블을 알려주고있다.

 

2022년 3월의

---> WHERE 조건문을 알려주고있다.

 

오프라인/온라인 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력

--->SELECT문을 알려주고있다.

 

OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시

--->SELECT 조건문을 말해주고있다.

 

판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.

--->정렬방법에대해 알려주고있다.

 


설명!

 

어렵고 까다로운 조건은 없었으나 다만 여태까지 안다뤄본 UNION이라 조금 당황했을 수도 있다.

 

나도 처음엔 JOIN으로 하였으나 추후 UNION으로 변경하게 되었다.

 

왜냐하면 서로다른 테이블을 말그대로 합치는 것이기 때문이다 말그대로 합치는것

JOIN처럼 연관된 것들을 이용한 조건으로 합치는 것이 아닌 말그대로

UNION 합치는 것이였기 때문이다.

 

하지만 UNION을 사용하기엔 조건이 따른다.

서로 다른 테이블 또는 쿼리에서 가져온 데이터를 하나의 결과로 결합하려는 경우 UNION을 사용할 수 있는데. 이땐 반드시 각 결과 집합은 동일한 열 수 와 데이터 형식을 가져야 한다는 점이다.

 

그렇기에 위에 쿼리문을 본다면 열수와 동일한 컬럼명 까지 맞춰주는 것을 볼 수 있다.

 

 

 

 

티스토리와 깃허브 홈
 

학스의 개발일지

안녕하세요 일상과 코딩공부를 올리고 있는 JAVA개발자 학스입니다. 저는 주로 JAVA, jQuery, PostgreSQL, HIVE을 다루고 있고 코딩테스트공부도 병행중입니다. 제 깃허브 주소인 https://github.com/hacs2772에

hacs2772.tistory.com

 

 

hacs2772 - Overview

개발왕 학스. hacs2772 has 8 repositories available. Follow their code on GitHub.

github.com

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

728x90
반응형
LIST