Coding Test/SQL 연습 문제

프로그래머스/MySQL - GROUP BY 10. 년, 월, 성별 별 상품 구매 회원수 구하기

parkes811 2023. 1. 13. 22:48
 

프로그래머스

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

programmers.co.kr

 

  • 문제

 

  • 코드 및 문제 풀이
SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER, 
       COUNT(DISTINCT A.USER_ID) AS USERS
FROM USER_INFO AS A 
JOIN ONLINE_SALE AS B
ON A.USER_ID = B.USER_ID
GROUP BY YEAR, MONTH, GENDER 
HAVING GENDER IS NOT NULL
ORDER BY YEAR, MONTH, GENDER ASC

- USER_INFO 테이블과 ONLINE_SALE 테이블을 USER_ID를 기준으로 합쳤습니다.

- 년, 월, 성별 별로 상품을 구매한 회원수를 집계할 때 GROUP BY에서 년, 월, 성별로 그룹화를 했기 때문에

DISTINCT를 사용하여 USER_ID가 중복되지 않게 했습니다.

- GENDER가 비어있는 경우는 출력에서 제외하기 위해 HAVING에서 조건을 명시했습니다.