👉 오늘 한 일
- 프로그래머스 SQL 문제풀이
- 책 집필 - 편집 툴 적용
프로그래머스 SQL
1. 상품을 구매한 회원 비율 구하기
- lv 5, JOIN
- 가입일이 2021년인 고객을 전부 세서 서브쿼리로 활용. 메인쿼리에서는 두 테이블을 조인한 후 가입일이 2021년인 고객을 필터링해서 판매년도(
YEAR(sales_date)
), 판매월(MONTH(sales_date)
)로 그룹화한 후 고객 id를 unique하게 세기 위해 DISTINCT 사용.
SELECT YEAR(sales_date) year,
MONTH(sales_date) month,
COUNT(DISTINCT s.user_id) purchased_users,
ROUND(COUNT(DISTINCT s.user_id) /
(SELECT COUNT(*)
FROM user_info u
WHERE YEAR(joined) = "2021"), 1) purchased_ratio
FROM user_info u
JOIN online_sale s
ON u.user_id = s.user_id
WHERE YEAR(joined) = "2021"
GROUP BY YEAR(sales_date), MONTH(sales_date)
ORDER BY year, month