티스토리 뷰

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

이번 문제는 LEVEL5 짜리 문제였다.
 
JOIN 문제분류 중에 가장 난이도가 높은 문제였으며, 실제로 푸는데 시간을 2일 정도 쏟았다.
 
결국엔 풀어내 뿌듯하고 성취감이 들지만, 좀 어이가 없다.
 
예시에서 보여준 데이터 출력형태를 보자.

분명히 PUCHAED_RATIO 가 "0.x"의 형태로 출력되고 있다.
 
내가 처음 짠 쿼리는 ". x" 형태로 출력되어 그걸 맞추기 위해 많이 고민했었다.
 
아니 뭐가 틀린거지 하면서 데이터를 조회하며 비교했지만, 분명 맞아야 하는데 계속 틀리길래 그냥 문제 제출 누르더니 정답이더라.
 
어이가 없었다.
 
조건 1
 - 2021년에 회원가입한 user_id와 회원수 구하기
 
조건 2
 - 2022년에 각 월별로 구매한 2021년에 가입한 사용자 나누기
 
조건 3
 - 2021년에가입한 회원이면서 2022년에 물건을 산 회원수/2021년에 가입한 회원수
 
그래도 이번 문제는 다행이도, group by로 묶어줘야 하는 항목이 겹쳐서 난이도에 비해 쉽게 풀렸다.
 
쿼리

select to_char(SALES_DATE,'YYYY') YEAR
    , TO_NUMBER(to_char(SALES_DATE,'MM')) MONTH
    , COUNT(distinct s.user_id) PUCHASED_USERS
    , round(COUNT(distinct s.user_id) / (SELECT COUNT(ii.user_id) FROM USER_INFO ii WHERE TO_CHAR(ii.joined,'YYYY') ='2021'),1) PUCHASED_RATIO
from ONLINE_SALE S, USER_INFO I
WHERE 1=1
AND I.USER_ID = S.USER_ID
AND TO_CHAR(I.JOINED,'YYYY') = '2021'
GROUP BY to_char(SALES_DATE,'YYYY'), to_char(SALES_DATE,'MM')
order by 1, 2

 
LEVEL5 문제를 풀어 기쁘긴 하지만 영 기분이 시원치 않다.
 
그래도 오늘 잠은 편히 잘 수 있겠다.
 
요즘 회사에서 새로 배우는 것들이 많아 뇌가 쉴 틈이 없다.
 
정진하자.

 

댓글