[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/131532
[풀이]
1. 년, 월, 성별로 GROUP BY 하여 집계. GENDER가 NULL인 경우 제외.
2. 주의할 점은 같은 회원이 서로 다른 아이템을 동일한 년, 월에 구매할 경우 중복 집계로 처리 되어야 한다. 따라서 COUNT 시에 DISTINCT(U.USER_ID) 가 필수적임에 주의!
[코드]
SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER, COUNT(DISTINCT(O.USER_ID)) AS USERS
FROM ONLINE_SALE O
JOIN USER_INFO U ON O.USER_ID=U.USER_ID
WHERE U.GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER;
'알고리즘 공부 및 문제 풀이 > 프로그래머스(PRO)' 카테고리의 다른 글
[pro] 프로그래머스 level2 요격 시스템 (Java) - 그리디 (0) | 2023.05.05 |
---|---|
[pro] 프로그래머스 SQL level4 입양 시각 구하기(2) - GROUP BY, RECURSIVE CTE (0) | 2023.04.28 |
[pro] 프로그래머스 SQL level4 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 - JOIN (0) | 2023.04.28 |
[pro] 프로그래머스 SQL level2 카테고리 별 상품 개수 구하기 - String (0) | 2023.04.28 |
[pro] 프로그래머스 SQL level3 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 - GROUP BY (0) | 2023.04.27 |