프로그래머스/My SQL

년, 월, 성별 별 상품 구매 회원 수 구하기

싱싱한복초이 2024. 12. 21. 12:59

https://school.programmers.co.kr/learn/courses/30/lessons/131532

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.

 

[나의 풀이]

SELECT
YEAR(SALES_DATE) YEAR, 
MONTH(SALES_DATE) MONTH, 
GENDER, 
COUNT(DISTINCT O.USER_ID) USERS
FROM ONLINE_SALE O JOIN USER_INFO U
ON O.USER_ID = U.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE), GENDER
ORDER BY YEAR, MONTH, GENDER;

처음에 그냥 COUNT(*)라고 해서 틀렸다.

DISTINCT를 넣는것이 핵심이다.