문제
USER_INFO
테이블과 ONLINE_SALE
테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
💡 조건
sql 코드
SELECT year(sales_date) year, month(sales_date) month, gender,
count(DISTINCT(sale.user_id)) users
FROM online_sale as sale join
(SELECT user_id, gender
FROM user_info
WHERE gender is not null) as user
on user.user_id = sale.user_id
GROUP BY year, month, gender
ORDER BY year, month, gender
not null
사용해서 미리 gender가 비어있는 경우를 제외해주었다. 상품을 구매했다고 해도 이경우는 제외되는 경우니까 미리 해줘도 상관없다고 판단했다.FROM online_sale as sale join
(SELECT user_id, gender
FROM user_info
WHERE gender is not null) as user
on user.user_id = sale.user_id
GROUP BY year, month, gender
DISTINCT
로 중복 제거해준다.SELECT year(sales_date) year, month(sales_date) month, gender,
count(DISTINCT(sale.user_id)) users
ORDER BY year, month, gender