Post

[Programmers] 131532번 - 년, 월, 성별 별 상품 구매 회원 수 구하기 [MySQL]

[Programmers] 131532번 - 년, 월, 성별 별 상품 구매 회원 수 구하기 [MySQL]

문제 링크


1. 문제 풀이


JOIN 후 성별 정보가 없는 경우를 WHERE 절로 필터링하고 년, 월, 성별을 기준으로 그룹핑을 해주면 된다. 이때 회원수를 세야해서 COUUT 집계함수에서 레코드의 수를 세는게 아니라 고유한 유저 아이디의 수를 세줬다.


2. 쿼리


1
2
3
4
5
6
7
8
9
10
11
SELECT
    YEAR(o.SALES_DATE) AS YEAR,
    MONTH(o.SALES_DATE) AS MONTH,
    u.GENDER,
    COUNT(DISTINCT u.USER_ID)
FROM USER_INFO AS u
JOIN ONLINE_SALE AS o
    ON u.USER_ID = o.USER_ID
WHERE u.GENDER IS NOT NULL
GROUP BY YEAR, MONTH, u.GENDER
ORDER BY YEAR, MONTH, u.GENDER;

This post is licensed under CC BY 4.0 by the author.