
문제살펴보기
USER_INFO테이블과ONLINE_SALE테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요.
상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요.
테이블 설명

요악하자면
1. 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수 구하기
2. 상품을 구매한 회원의 비율 구하기
3. 그걸 년, 월 별로 구분
4. 소수점 두번째자리에서 반올림 & 전체 결과는 년을 기준으로 오름차순 정렬 & 년도가 같다면 월을 기준으로 오름차순 정렬
SELECT DATE_FORMAT(sale.SALES_DATE, '%Y') YEAR, -- 년도 구분
DATE_FORMAT(sale.SALES_DATE, '%m') MONTH, -- 월별 구분
COUNT(DISTINCT sale.USER_ID) PUCHASED_USERS, -- 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수
ROUND(COUNT(DISTINCT sale.USER_ID) / (SELECT COUNT(USER_ID)
FROM USER_INFO
WHERE YEAR(JOINED) = '2021'), 1) PUCHASED_RATIO -- 상품 구매한 회원의 비율
FROM USER_INFO user JOIN ONLINE_SALE sale
ON user.USER_ID = sale.USER_ID
WHERE YEAR(JOINED) = '2021'
GROUP BY YEAR, MONTH
❗
상품 구매한 회원 비율에DISTINCT해주는 이유
고객 한 명이2021년도에 중복 구매를 했을 수도 있으니중복제거필수