🧠 DataBase
[mySQL] 년, 월, 성별 별 상품 구매 회원 수 구하기
Arendt
2024. 10. 11. 15:19
문제
- Table1 : USER_INFO
- Column
USER_ID : 회원 ID
GENDER : 성별
AGE : 나이
JOINED : 가입일
- Table2 : ONLINE_SALE
- Column
ONLINE_SALE_ID : 온라인 상품 판매 ID
USER_ID : 회원 ID
PRODUCT_ID : 상품 ID
SALES_AMOUNT : 판매량
SALES_DATE : 판매일 - 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다
- USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
문제 분석
USER_INFO 테이블과 ONLINE_SALE 테이블에서 => JOIN, ON
년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. => GROUP BY, SELECT, COUNT(DISTINCT _ )
결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. => ORDER BY
이때, 성별 정보가 없는 경우 결과에서 제외해주세요 = WHERE
풀이
SELECT YEAR(B.SALES_DATE),
MONTH(B.SALES_DATE),
GENDER,
COUNT(DISTINCT B.USER_ID) AS 'USERS'
FROM USER_INFO AS A JOIN ONLINE_SALE AS B ON A.USER_ID = B.USER_ID
WHERE A.GENDER IS NOT NULL
GROUP BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER
ORDER BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER