본문 바로가기

프로그래머스

(MySQL / 프로그래머스) 상품을 구매한 회원 비율 구하기

728x90
반응형
SMALL


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


 



문제 출처

코딩테스트 연습 - 상품을 구매한 회원 비율 구하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr



Code

SELECT  DATE_FORMAT(B.SALES_DATE, "%Y") AS YEAR, 
        DATE_FORMAT(B.SALES_DATE, "%m") AS MONTH, 
        COUNT(DISTINCT A.USER_ID) AS PUCHASED_USERS,
        ROUND(COUNT(DISTINCT A.USER_ID) / (SELECT COUNT(*) FROM USER_INFO WHERE joined LIKE CONCAT("2021", "%")),1) AS PUCHASED_RATIO 
        
FROM    USER_INFO A JOIN ONLINE_SALE B ON A.USER_ID = B.USER_ID

WHERE A.JOINED LIKE CONCAT("2021", "%")

    GROUP BY    YEAR, 
                MONTH

    ORDER BY    YEAR,
                MONTH
                
#FORMAT은 결과가 문자, ROUND는 결과가 숫자!!!!!!
        
# USER_INFO 테이블과 ONLINE_SALE 테이블에서
# 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와
# 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중      상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 

# 년, 월 별로 출력하는 SQL문을 작성해주세요.

# 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고,

# 년을 기준으로 오름차순, 월을 기준으로 오름차순

 

 

여기서 배울점은

 

먼저 요구하는것이 무엇인지 파악하는 능력과

FORMAT은 결과가 문자, ROUND는 결과가 숫자 인점이다. (여기선 딱히 상관없다)

GROUP BY

COUNT

 

이것을 어떻게 사용하고 어떨때 사용해야하는지를 완벽하게 이해한다면 손쉽게 풀 수 있다.

 

 

 

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.

728x90
반응형
LIST