https://school.programmers.co.kr/learn/courses/30/lessons/131532
USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER, COUNT(DISTINCT o.USER_ID) AS 'USERS'
FROM USER_INFO u
INNER JOIN ONLINE_SALE o ON u.USER_ID = o.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER
- USER_ID로 INNER JOIN
- GENDER가 NULL이면 제외
- YEAR, MONTH, GENDER로 그룹화
- YEAR, MONTH, GENDER 오름차순 정렬
- 조회할 때 USER_ID 중복으로 세지 않도록 DISTINCT 사용