🙆♀️ 정답 풀이
SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER,COUNT(DISTINCT(USER_INFO.USER_ID)) AS USERS
FROM USER_INFO JOIN ONLINE_SALE
ON USER_INFO.USER_ID=ONLINE_SALE.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER;
- 년, 월, 성별 별로 구하라고 했으니까,
GROUP BY YEAR,NONTH,GENDER
- 년, 월, 성별 기준 오름차순 정렬이므로
ORDER BY YEAR,MONTH,GENDER
이 부분을 ORDER BY 1,2,3
으로 해도 된다.
- 성별 정보가 없으면 제외 -> WHERE 절에 조건 추가.
- USER_INFO 테이블과 ONLINE_SALE 테이블을 JOIN하는데, 공통 컬럼이 USER_ID 이므로 이걸로 묶음.
- 같은 날짜에 같은 USER_ID를 가진 유저가 여러번 구매할 수 있으므로,
DISTINCT(USER_INFO.USER_ID)
를 해줘야 된다.