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

Dreamer·2025년 6월 11일

문제

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

나의 풀이

  1. 첫번째 풀이 : 쿼리문 미완성 😢
    구현하지 못한 부분 : 년, 월, 성별이 일치하면 count함수로 개수 세기
    GROUP BY 에 대한 이해도 부족
SELECT
	YEAR(S.SALES_DATE) AS YEAR,
    MONTH(S.SALES_DATE) AS MONTH,
    U.GENDER
FROM ONLINE_SALE S
JOIN USER_INFO U ON U.USER_ID = S.USER_ID
WHERE U.GENDER IS NOT NULL
  1. 두번째 풀이
SELECT 
    YEAR(S.SALES_DATE) AS YEAR,
    MONTH(S.SALES_DATE) AS MONTH,
    U.GENDER,
    COUNT(DISTINCT S.USER_ID) AS USERS
FROM ONLINE_SALE S
JOIN USER_INFO U ON U.USER_ID = S.USER_ID
WHERE U.GENDER IS NOT NULL
GROUP BY YEAR(S.SALES_DATE), MONTH(S.SALES_DATE), U.GENDER
ORDER BY YEAR, MONTH, GENDER
profile
Moving forward based on records

0개의 댓글