Allen's 데이터 맛집

프로그래머스 lv. 5 : 상품을 구매한 회원 비율 구하기 본문

SQL/SQL 문제풀이

프로그래머스 lv. 5 : 상품을 구매한 회원 비율 구하기

Allen93 2024. 1. 23. 06:05
이 문제에서는 2021년에 가입한 회원 중에서 상품을 구매한 회원의 비율을 계산하는 것이 목표입니다. 

 

문제

 

 

풀이

-- 2021년에 가입한 회원 중 상품을 구매한 회원 비율 구하기
SELECT 
    YEAR(SALES_DATE) AS "Year",
    MONTH(SALES_DATE) AS "Month",
    COUNT(DISTINCT os.USER_ID) AS "Purchased Users",
    ROUND(COUNT(DISTINCT os.USER_ID) / COUNT(DISTINCT ui.USER_ID), 2) AS "Purchased Ratio"
FROM 
    ONLINE_SALE os
JOIN 
    USER_INFO ui ON os.USER_ID = ui.USER_ID
WHERE 
    YEAR(ui.JOINED) = 2021
GROUP BY 
    YEAR(SALES_DATE), MONTH(SALES_DATE)
ORDER BY 
    YEAR(SALES_DATE), MONTH(SALES_DATE);



1. ONLINE_SALE과 USER_INFO 테이블을 USER_ID를 기준으로 조인합니다.
2. WHERE 절에서는 USER_INFO 테이블의 JOINED 컬럼에서 연도가 2021인 회원만 선택합니다.
3. COUNT(DISTINCT os.USER_ID)를 통해 각 년월에 구매한 회원 수를 계산합니다.
4. COUNT(DISTINCT ui.USER_ID)를 통해 2021년에 가입한 전체 회원 수를 계산합니다.
5. ROUND 함수를 사용하여 구매한 회원의 비율을 소수점 두 자리로 반올림합니다.
6. 결과를 년과 월 별로 그룹화하고 정렬하여 출력합니다.

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90