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 |
---|