코딩테스트 | SQL/프로그래머스

[프로그래머스 | SQL] 상품을 구매한 회원 비율 구하기

iemxl 2024. 5. 10. 21:40

SQL 고득점 Kit > JOIN > 상품을 구매한 회원 비율 구하기

 

 

상품을 구매한 회원 비율 구하기 Lv.5

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

 

 

 

첫 번째 풀이 :     100점

-- 코드를 입력하세요
SELECT YEAR(B.SALES_DATE) AS YEAR, MONTH(B.SALES_DATE) AS MONTH, 
    COUNT(DISTINCT B.USER_ID) AS PUCHASED_USERS,
    ROUND(COUNT(DISTINCT A.USER_ID)/(SELECT COUNT(*) FROM USER_INFO WHERE YEAR(JOINED) = '2021'), 1) AS PUCHASED_RATIO
FROM USER_INFO A
JOIN ONLINE_SALE B
ON A.USER_ID = B.USER_ID
WHERE YEAR(A.JOINED) = '2021'
GROUP BY YEAR, MONTH
ORDER BY YEAR ASC, MONTH ASC
  • 전체의 비율을 구하기 위해 SELECT로 TABLE 만들기
  • USER_ID = 1인 사람이 여러 번 구매할 수 있으므로 DISTINCT 사용