코딩테스트/SQL

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

_알파카 2024. 8. 7. 17:49
728x90

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/131532

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 풀이

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

 

어렵지 않은 문제이다. 

주의할 점은 

1. GENDER에 NULL 값이 포함되어 있기 때문에 HAVING 조건에 GENDER IS NOT NULL 조건을 넣어준다. 

2. 고유한 USER_ID 수를 세기 위해서 COUNT 시 DISTINCT를 추가해준다. 

 

2가지만 주의한다면 쉽게 풀 수 있다! 

728x90