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

수이·4일 전
0

🟢 코드카타 / SQL

목록 보기
76/81

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

조건정리
1. 2021년 가입 회원
2. (구매회원수 / 전체 회원수) > 비율계산

  • 소수점 두번째자리에서 반올림
  1. 년,월 오름차순 정렬

풀이

  1. 2021년 가입자 회원수 세서 CTE 만들어주기
  2. 조인해서 계산해주면 끝~
WITH total_2021 AS
(
    SELECT count(*) AS total_users
    FROM user_info
    WHERE YEAR(joined) = 2021
)

SELECT YEAR(o.sales_date) AS year,
       MONTH(o.sales_date) AS month,
       COUNT(DISTINCT o.user_id) AS purchased_users,
       ROUND(COUNT(DISTINCT o.user_id) / t.total_users,1) AS purchased_ratio
FROM user_info u 
INNER JOIN online_sale o ON u.user_id = o.user_id
CROSS JOIN total_2021 t 
WHERE YEAR(u.joined) = 2021
GROUP BY 1, 2
ORDER BY 1, 2

0개의 댓글

관련 채용 정보