프로그래머스 SQL 고득점 킷 년, 월, 성별 별 상품 구매 회원 수 구하기

hysss·2023년 2월 19일
0

GROUP BY - 년, 월, 성별 별 상품 구매 회원 수 구하기

문제 분석

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

코드

SELECT YEAR(O.SALES_DATE) AS YEAR, MONTH(O.SALES_DATE) AS MONTH, GENDER, COUNT(DISTINCT U.USER_ID) AS USERS
FROM USER_INFO U JOIN ONLINE_SALE O ON U.USER_ID=O.USER_ID
GROUP BY YEAR(O.SALES_DATE), MONTH(O.SALES_DATE), GENDER
HAVING GENDER IS NOT NULL
ORDER BY YEAR(O.SALES_DATE), MONTH(O.SALES_DATE), GENDER

문제 풀이

문제 자체는 간단한 문제였는데, 같은 년, 같은 월, 같은 성별인 유저상품을 여러 번 살 수 있다는 사실을 간과해서 틀렸던 문제였다. 즉, 상품을 구매한 회원 수를 집계한 것이 아니라 상품을 구매한 건 수를 집계해버려서 틀렸다.

DISTINCT로 중복되는 USER_ID를 제거해서 문제를 해결했다.

profile
매일 매일 규칙적으로

0개의 댓글