728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/131532
내 풀이
SELECT YEAR(s.SALES_DATE) AS YEAR
, MONTH(s.SALES_DATE) AS MONTH
, i.GENDER AS GENDER
, COUNT(DISTINCT s.USER_ID) AS USERS
FROM ONLINE_SALE s INNER JOIN USER_INFO i
ON s.USER_ID = i.USER_ID
GROUP BY YEAR(s.SALES_DATE), MONTH(s.SALES_DATE), i.GENDER
HAVING i.GENDER IS NOT NULL
ORDER BY YEAR(s.SALES_DATE), MONTH(s.SALES_DATE), i.GENDER
어렵지 않은 문제이다.
주의할 점은
1. GENDER에 NULL 값이 포함되어 있기 때문에 HAVING 조건에 GENDER IS NOT NULL 조건을 넣어준다.
2. 고유한 USER_ID 수를 세기 위해서 COUNT 시 DISTINCT를 추가해준다.
2가지만 주의한다면 쉽게 풀 수 있다!
728x90
'코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스][MySQL] Lv. 2 가격대 별 상품 개수 구하기 (0) | 2024.08.13 |
---|---|
[프로그래머스][MySQL] Lv. 4 입양 시각 구하기(2) (2) | 2024.08.12 |
[프로그래머스][MySQL] Lv. 2 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.08.05 |
[프로그래머스][MySQL] Lv. 3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (0) | 2024.08.05 |
[프로그래머스][MySQL] Lv. 3 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.07.30 |