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