문제
https://school.programmers.co.kr/learn/courses/30/lessons/131534
접근방법
LV5라고 적혀있어서 쫄았는데, 풀만했다.
코드
-- 코드를 입력하세요
SELECT year(sales_date) as year,
month(sales_date) as month,
count(distinct user_id) as purchased_users,
round(count(distinct user_id) / (select count(distinct user_id)
from user_info
where year(joined) = 2021), 1) as purchased_ratio
from user_info natural join online_sale
where year(joined) = 2021
group by year, month
order by year, month
개선할 점
count 함수 내에 distinct를 포함해야 유저 숫자를 셀 수 있는 데,
distinct를 적는 것을 빠뜨려서 계속 틀렸다.
count 사용할 때 distinct 적는 건 습관 들여야겠다.
'코딩테스트 준비 > SQL문법' 카테고리의 다른 글
[프로그래머스 LV4] - 자동차 대여 기록 별 대여 금액 구하기(string, date) SQL(how to use 'with clause' ) (1) | 2024.02.18 |
---|---|
[프로그래머스 LV3] - 조건에 맞는 사용자 정보 조회하기(string, date) SQL (0) | 2024.02.18 |
[프로그래머스 LV4] - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(join) SQL (0) | 2024.02.17 |
[프로그래머스] - 자동차 대여 기록에서 장기/단기 대여 구분하기 SQL - String, Date (0) | 2024.02.16 |
[프로그래머스] - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (group by) SQL (0) | 2024.02.15 |