상세 컨텐츠

본문 제목

프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기 (MYSQL)

카테고리 없음

by nownow 2024. 2. 13. 03:41

본문

MYSQL풀이

 

틀렸던 풀이

SELECT
YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER,
COUNT(*) AS USERS
FROM
USER_INFO AS INFO
JOIN
ONLINE_SALE AS SALE
USING(USER_ID)
WHERE GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER
ORDER BY 1,2,3,4

틀리고 원인을 찾는데 좀 걸렸다.

ONLINE_SALE 테이블의 USER_ID는 KEY가 아님. 같은 회원이 같은 달에 여러번 찍혀 있을 수 있음.

COUNT 사용시 DISTINCT로 중복을 제거해주자.

 

정답

SELECT
YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER,
COUNT(DISTINCT USER_ID) AS USERS
FROM
USER_INFO AS INFO
JOIN
ONLINE_SALE AS SALE
USING(USER_ID)
WHERE GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER
ORDER BY 1,2,3,4