최대 1 분 소요

문제 링크

정답

-- USER_INFO: USER_ID, GENDER, AGE, JOINED
-- ONLINE_SALE: ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE

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

✅ Point

  • 한 달 안에 여러 번 구매한 유저는 1명으로만 세야 한다
    • 단순한 COUNT(USER_ID)가 아니라 COUNT(DISTINCT USER_ID) 를 사용해야 함!