SQL/프로그래머스
[SQL] 프로그래머스 [Level-5] 상품을 구매한 회원 비율 구하기
SeungyubLee
2022. 12. 2. 11:37
<MySQL>
SELECT DATE_FORMAT(A.SALES_DATE, '%Y') AS YEAR
, DATE_FORMAT(A.SALES_DATE, '%c') AS MONTH
, COUNT(DISTINCT A.USER_ID) AS PUCHASED_USERS
, ROUND(COUNT(DISTINCT A.USER_ID) / (SELECT COUNT(*) FROM USER_INFO WHERE DATE_FORMAT(JOINED, '%Y') = 2021), 1) AS PUCHASED_RATIO
FROM ONLINE_SALE A
INNER JOIN USER_INFO B
ON A.USER_ID = B.USER_ID
AND DATE_FORMAT(B.JOINED, '%Y') = 2021
GROUP BY YEAR, MONTH
ORDER BY CAST(YEAR AS SIGNED), CAST(MONTH AS SIGNED)
<Oracle>
SELECT EXTRACT(YEAR FROM A.SALES_DATE) AS YEAR
, EXTRACT(MONTH FROM A.SALES_DATE) AS MONTH
, COUNT(DISTINCT A.USER_ID) AS PUCHASED_USERS
, ROUND(COUNT(DISTINCT A.USER_ID) / (SELECT COUNT(*) FROM USER_INFO WHERE TO_CHAR(JOINED, 'YYYY') = 2021), 1) AS PUCHASED_RATIO
FROM ONLINE_SALE A
INNER JOIN USER_INFO B
ON A.USER_ID = B.USER_ID
AND TO_CHAR(B.JOINED, 'YYYY') = 2021
GROUP BY EXTRACT(YEAR FROM A.SALES_DATE), EXTRACT(MONTH FROM A.SALES_DATE)
ORDER BY EXTRACT(YEAR FROM A.SALES_DATE), EXTRACT(MONTH FROM A.SALES_DATE)
프로그래머스 상품을 구매한 회원 비율 구하기 SQL