우당탕탕 개발일지

[SQL] 프로그래머스 GROUP BY : 년, 월, 성별 별 상품 구매 회원 수 구하기 (level 4) 본문

SQL

[SQL] 프로그래머스 GROUP BY : 년, 월, 성별 별 상품 구매 회원 수 구하기 (level 4)

민아당긴아 2025. 1. 3. 16:02

💡문제 링크

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

💡SQL 코드 설계

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

1. 년, 월 열을 새로 만든다.

2. 년, 월, 성별 기준으로 GROUP BY 진행

3. 년, 월, 성별 기준으로 USER_ID의 개수를 중복을 제외하고 세는 USERS 열 추가

 

💡SQL 코드

SELECT YEAR(SALES_DATE) AS YEAR, MONTH(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
WHERE GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER

 

💡기억할 내용

1. 중복을 제외하니까 COUNT(DISTINCT U.USER_ID)