728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
GROUP BY, DISTINCT를 잘 활용해야 하는 문제.
WITH REAL_USER_INFO AS (
SELECT COUNT(*) AS CNT
FROM USER_INFO
WHERE JOINED LIKE "2021%"
),
REAL_ONLINE_SALE AS (
SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, COUNT(DISTINCT USER_ID) AS CNT
FROM ONLINE_SALE
WHERE USER_ID IN
(
SELECT USER_ID
FROM USER_INFO
WHERE JOINED LIKE "2021%"
)
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE)
)
SELECT O.YEAR, O.MONTH, O.CNT AS PURCHASED_USERS, ROUND((O.CNT / I.CNT), 1) AS PURCHASED_RATIO
FROM REAL_USER_INFO I, REAL_ONLINE_SALE O
ORDER BY 1, 2
728x90
'알고리즘 > SQL' 카테고리의 다른 글
[프로그래머스] FrontEnd 개발자 찾기 (0) | 2024.07.18 |
---|---|
[프로그래머스] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.07.16 |
[프로그래머스] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2024.07.11 |
[프로그래머스] 특정 세대의 대장균 찾기 (0) | 2024.07.09 |
[프로그래머스] 입양 시각 구하기(2) (0) | 2024.07.08 |