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'SQL > GROUP BY' 카테고리의 다른 글
| [프로그래머스 SQL] Lv.4 - 언어별 개발자 분류하기 (0) | 2025.04.10 |
|---|---|
| [프로그래머스 SQL] Lv.4 - 입양 시각 구하기(2) (0) | 2025.04.03 |
| [프로그래머스 SQL] Lv.4 - 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2025.03.31 |
| [프로그래머스 SQL] Lv.4 - 저자 별 카테고리 별 매출액 집계하기 (0) | 2025.03.29 |
| [프로그래머스 SQL] Lv.3 - 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2025.03.28 |