https://school.programmers.co.kr/learn/courses/30/lessons/131532
- 문제
USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
년, 월, 성별 별로 상품을 구매한 USER 수를 count할 때 동일한 USER_ID가 여러번 나와도 하나로 처리해야하므로 속성명 앞에 DISTINCT를 붙여야한다.COUNT(DISTINCT ONLINE_SALE.USER_ID)
SELECT YEAR(SALES_DATE) AS 'YEAR', MONTH(SALES_DATE) AS 'MONTH', USER_INFO.GENDER AS 'GENDER', COUNT(DISTINCT ONLINE_SALE.USER_ID) AS 'USERS'
FROM USER_INFO, ONLINE_SALE
WHERE USER_INFO.USER_ID = ONLINE_SALE.USER_ID AND USER_INFO.GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE), USER_INFO.GENDER
ORDER BY 1, 2, 3