[SQL] Programmers_JOIN. Front End 개발자 찾기
Programmers JOIN. Front End 개발자 찾는 문제를 파헤쳐보자 :)
Programmers JOIN. 상품을 구매한 회원 비율 구하는 문제를 파헤쳐보자 :)
USER_INFO 테이블USER_ID : 회원 IDGENDER : 회원 성별AGE : 회원 나이JOINED : 회원 가입일ONLINE_SALE 테이블ONLINE_SALE_ID : 온라인 상품 판매 IDUSER_ID : 회원 IDPRODUCT_ID : 상품 IDSALES_AMOUNT : 판매량SALES_DATE : 판매일WITH TOTAL_USERS AS ( SELECT COUNT(USER_ID) AS TOTAL_USER_COUNT FROM USER_INFO WHERE YEAR(JOINED) = 2021 ) SELECT YEAR(OS.SALES_DATE) AS YEAR, MONTH(OS.SALES_DATE) AS MONTH, COUNT(DISTINCT OS.USER_ID) AS PURCHASED_USERS, ROUND(COUNT(DISTINCT OS.USER_ID)/TU.TOTAL_USER_COUNT, 1) AS PUCHASED_RATIO FROM USER_INFO AS UI JOIN ONLINE_SALE AS OS ON UI.USER_ID = OS.USER_ID CROSS JOIN TOTAL_USERS AS TU WHERE YEAR(UI.JOINED) = 2021 GROUP BY YEAR, MONTH ORDER BY YEAR, MONTH;
WITH TOTAL_USERS AS ( SELECT COUNT(USER_ID) AS TOTAL_USER_COUNT FROM USER_INFO WHERE YEAR(JOINED) = 2021 )
USER_INFO 테이블의 2021년에 가입한 회원 전체 수를 반환한다.SELECT YEAR(OS.SALES_DATE) AS YEAR, MONTH(OS.SALES_DATE) AS MONTH, COUNT(DISTINCT OS.USER_ID) AS PURCHASED_USERS, ROUND(COUNT(DISTINCT OS.USER_ID)/TU.TOTAL_USER_COUNT, 1) AS PUCHASED_RATIO FROM USER_INFO AS UI JOIN ONLINE_SALE AS OS ON UI.USER_ID = OS.USER_ID CROSS JOIN TOTAL_USERS AS TU WHERE YEAR(UI.JOINED) = 2021 GROUP BY YEAR, MONTH ORDER BY YEAR, MONTH;
USER_INFO, ONLINE_SALE, TOTAL_USERS 테이블을 2021년에 가입한 값을 기준으로, 연/월 별로 그룹화하고 오름차순으로 정리된다.SALES_DATE를 기반으로 각각 연도와 월을 뽑아낸다.고유 회원수와, 상품을 구매한 회원의 비율을 출력한다.WITH TOTAL_USERS AS ( SELECT COUNT(USER_ID) AS TOTAL_USER_COUNT FROM USER_INFO WHERE YEAR(JOINED) = 2021 ) SELECT YEAR(OS.SALES_DATE) AS YEAR, MONTH(OS.SALES_DATE) AS MONTH, COUNT(DISTINCT OS.USER_ID) AS PURCHASED_USERS, ROUND(COUNT(DISTINCT OS.USER_ID)/TU.TOTAL_USER_COUNT, 1) AS PUCHASED_RATIO FROM USER_INFO AS UI JOIN ONLINE_SALE AS OS ON UI.USER_ID = OS.USER_ID CROSS JOIN TOTAL_USERS AS TU WHERE YEAR(UI.JOINED) = 2021 GROUP BY YEAR, MONTH ORDER BY YEAR, MONTH;
USER_INFO 테이블의 2021년에 가입한 회원 전체 수를 반환하는 테이블을 만든다.USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 결과를 반환한다.