노아

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

알고리즘/SQL

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

Noaahhh 2024. 9. 19. 14:24

 

Question

 

USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.

 

 

Pseudocode

 

 

  1. ONLINE_SALE 테이블(o)과 USER_INFO 테이블(u)을 USER_ID로 조인.
  2. GENDER가 NULL이 아닌 행만 필터링.
  3. SALES_DATE의 YEAR, MONTH, 그리고 GENDER별로 그룹화.
  4. 그룹화된 각 조합에서 USER_ID의 고유한 사용자 수를 계산하여 USERS로 표시.
  5. 결과를 YEAR, MONTH, 그리고 GENDER 순으로 정렬하여 반환.

 

 

 

Code

 

select year(sales_date) YEAR ,month(sales_date) MONTH, GENDER, count(distinct(o.USER_ID)) USERS
from ONLINE_SALE o join USER_INFO u
on o.USER_ID = u.USER_ID
WHERE gender is not null
group by year(sales_date), month(sales_date), gender
ORDER BY YEAR, MONTH, GENDER