-- 코드를 입력하세요
-- SELECT 년, 월, 성별 별 상품을 구매한 회원수
-- FROM USER_INFO, ONLINE_SALE
-- 년, 월, 성별을 기준으로 오름차순 정렬
-- 년 별 상품을 구매한 회원수
-- SELECT TO_CHAR(S.SALES_DATE, 'YYYY') YEAR, TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))
-- , COUNT(I.GENDER), COUNT(I.USER_ID)
-- FROM USER_INFO I JOIN ONLINE_SALE S ON I.USER_ID = S.USER_ID
-- WHERE GENDER IS NOT NULL
-- GROUP BY TO_CHAR(S.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))
-- ORDER BY TO_CHAR(S.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))
-- , COUNT(I.GENDER), COUNT(I.USER_ID);
-- GENDER를 COUNT 하는 것이 아니라 그룹으로 묶어줘야 함
-- USER_ID를 구분하여 세어줘야함
SELECT TO_CHAR(S.SALES_DATE, 'YYYY') YEAR, TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))
, I.GENDER, COUNT(DISTINCT(I.USER_ID))
FROM USER_INFO I JOIN ONLINE_SALE S ON I.USER_ID = S.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY TO_CHAR(S.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM')), I.GENDER
ORDER BY TO_CHAR(S.SALES_DATE, 'YYYY'), TO_NUMBER(TO_CHAR(S.SALES_DATE, 'MM'))
, I.GENDER;