[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기

yenpkr·2025년 3월 2일
0

sql

목록 보기
41/91

문제

제출

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;
  • 참고 - 특정 형식(예: 년-월 또는 년-일)으로 그룹화
    DATE_FORMAT() 함수 사용
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;

월별로 개수 센다.

🚨 error

count(a.user_id) USERS

년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 것이기 때문에 중복 회원이 있어서는 안된다. 따라서 distinct 처리를 해줘야 한다.

count(distinct a.user_id) USERS

0개의 댓글