본문 바로가기
MYSQL/프로그래머스 LV05

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

by 수스리 2025. 3. 29.

https://school.programmers.co.kr/learn/courses/30/lessons/131534

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문제 

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

-- 코드를 입력하세요
WITH TEMP1 AS (
SELECT
        *, COUNT(*) OVER () AS COUNTS
FROM
        USER_INFO I
WHERE
        YEAR(joined) = 2021
)
SELECT
        YEAR(sales_date) AS year, MONTH(sales_date) AS MONTH ,
        COUNT(DISTINCT O.user_id) AS PURCHASED_USERS,  
        ROUND((COUNT(DISTINCT O.user_id)/ COUNTS), 1) AS PUCHASED_RATIO
FROM
        ONLINE_SALE O
JOIN
        TEMP1 T ON O.user_id = T.user_id
GROUP BY
        MONTH(sales_date)
ORDER BY    
        year ASC, MONTH ASC

LV05 첫 문제라 상당히 쫄아 있었는데 막상 어렵지 않았다. 문제를 본 순간 이렇게 풀어야 겠다는 생각이 들었다. 쿼리를 작성하자마자 바로 문제를 풀 수 있었다. 오히려 쉬워서 당황한케이스

'MYSQL > 프로그래머스 LV05' 카테고리의 다른 글

멸종위기의 대장균 찾기  (0) 2025.03.29