SELECT year(sales_date) YEAR,month(sales_date) MONTH,gender GENDER,count(distinct a.user_id) USERS
from user_info a
join online_sale b
on a.user_id = b.user_id
where gender is not null
group by 1,2,3
order by 1 asc,2 asc,3 asc
DAY, MONTH, YEAR 등을 사용하여 컬럼의 날짜 특정 부분을 추출해 그룹화
SELECT YEAR(some_date_column) AS year, MONTH(some_date_column) AS month, COUNT(*)
FROM your_table
GROUP BY YEAR(some_date_column), MONTH(some_date_column)
ORDER BY year, month;
SELECT DATE_FORMAT(some_date_column, '%Y-%m') AS month, COUNT(*)
FROM your_table
GROUP BY DATE_FORMAT(some_date_column, '%Y-%m')
ORDER BY month;
월별로 개수 센다.
count(a.user_id) USERS
년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 것이기 때문에 중복 회원이 있어서는 안된다. 따라서 distinct
처리를 해줘야 한다.
count(distinct a.user_id) USERS