<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
'SQL > 프로그래머스' 카테고리의 다른 글
[SQL] 프로그래머스 [Level-4] 취소되지 않은 진료 예약 조회하기 (0) | 2022.12.02 |
---|---|
[SQL] 프로그래머스 [Level-4] 주문량이 많은 아이스크림들 조회하기 (0) | 2022.12.02 |
[SQL] 프로그래머스 [Level-3] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2022.12.02 |
[SQL] 프로그래머스 [Level-3] 헤비 유저가 소유한 저장소 (0) | 2022.12.02 |
[SQL] 프로그래머스 [Level-3] 있었는데요 없었습니다 (0) | 2022.12.02 |