SQL/GROUP BY
[프로그래머스 SQL] Lv.4 - 년,월,성별 별 상품 구매 회원 수 구하기
이런개발
2025. 4. 1. 10:37
https://school.programmers.co.kr/learn/courses/30/lessons/131532
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
- USER_INFO 테이블과 ONLINE_SALE 테이블을 조인한다.
- IN NOT NULL 키워드로 성별 정보가 있는 행만 필터링한다.
- 년, 월, 성별을 기준으로 그룹핑한다.
- 년, 월, 성별을 조회한다. 그리고 COUNT 키워드로 그룹핑된 회원 수를 조회한다. 이때 하나의 회원을 중복 계산하는 것을 방지하기 위해 DISTINCT 키워드로 중복을 제거한다.
- 년, 월, 성별을 기준으로 오름차순 정렬한다.
SELECT
YEAR(B.SALES_DATE) AS YEAR,
MONTH(B.SALES_DATE) AS MONTH,
A.GENDER,
COUNT(DISTINCT(B.USER_ID)) AS USERS
FROM
USER_INFO A
JOIN ONLINE_SALE B ON A.USER_ID = B.USER_ID
WHERE
A.GENDER IS NOT NULL
GROUP BY
1, 2, 3
ORDER BY
1, 2, 3