Snoopy [JOIN] 47. 상품을 구매한 회원 비율 구하기 (LV. 5)
코딩테스트/프로그래머스 SQL

[JOIN] 47. 상품을 구매한 회원 비율 구하기 (LV. 5)

Sooyoon Jeong 2022. 11. 28.

🤔 문제 분석

1) USER_INFO 테이블과 ONLINE_SALE 테이블에서

2) 2021년에 가입한 전체 회원들 중

3) 상품을 구매한 회원수와

4) 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을

5) 년, 월 별로 출력하는 SQL문을 작성해주세요.

6) 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고,

7) 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요.

 

💡 풀이

SELECT YEAR(sale.SALES_DATE) AS YEAR, MONTH(sale.SALES_DATE) AS MONTH
        , COUNT(DISTINCT sale.USER_ID) AS PURCHASED_USERS
        , ROUND(COUNT(DISTINCT sale.USER_ID) /
                (SELECT COUNT(USER_ID)
                FROM USER_INFO
                WHERE YEAR(JOINED) = 2021), 1) AS PUCHASED_RATIO
FROM USER_INFO AS info
    JOIN ONLINE_SALE AS sale On info.USER_ID = sale.USER_ID
WHERE YEAR(info.JOINED) = 2021
GROUP BY YEAR, MONTH 
ORDER BY YEAR, MONTH

 

✍️ POINT

SELECT문에서 연산할 때

연산할 값의 분모 등에 SELECT문을 사용할 수 있다.

댓글