프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기
<문제>
USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
<처음에 틀렸던 쿼리>
-틀렸던 이유 : USER_ID 를 DISTINCT 처리 해줬어야 했음
-한 명의 유저가 여러개의 구매를 발생시킬 수 있었어서 유저 정보와 구매 정보를 조인하면 구매수 만큼 행이 불어나있었음
SELECT YEAR(S.SALES_DATE) YEAR, MONTH(S.SALES_DATE) MONTH, I.GENDER GENDER, COUNT(I.USER_ID) USERS
FROM USER_INFO I RIGHT JOIN ONLINE_SALE S
ON I.USER_ID = S.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR(S.SALES_DATE), MONTH(S.SALES_DATE), I.GENDER
ORDER BY YEAR,MONTH,GENDER
<맞은 쿼리>
-유저수를 셀 때는 ID 가 중복되는지 여부를 확인하자
SELECT YEAR(S.SALES_DATE) YEAR, MONTH(S.SALES_DATE) MONTH, I.GENDER GENDER, COUNT (DISTICNT(I.USER_ID)) USERS
FROM USER_INFO I RIGHT JOIN ONLINE_SALE S
ON I.USER_ID = S.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY YEAR(S.SALES_DATE), MONTH(S.SALES_DATE), I.GENDER
ORDER BY YEAR,MONTH,GENDER
'SQL' 카테고리의 다른 글
프로그래머스 SQL 오답노트 Level 3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2025.10.14 |
---|---|
프로그래머스 SQL 오답노트 Level 3 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2025.10.14 |
프로그래머스 SQL 오답노트 Level 3 오랜 기간 보호한 동물 (2) (0) | 2025.10.14 |
프로그래머스 SQL 오답노트 251010 (0) | 2025.10.10 |