Data Analyst KIM
[MySQL] 년, 월, 성별 별 상품 구매 회원 수 구하기(프로그래머스_Lv.4) 본문
반응형
<문제>
<예시>
<나의 문제 풀이>
USER_INFO 와 ONLINE_SALE을 INNER JOIN으로 묶어주고 성별 값이 누락인 값은 제외시켜준다.
년도,월,성별 별로 상품을 구매한 회원수를 구해야하기 때문에 년도와 월의 컬럼을 만들어준다.
이 후 WITH를 활용하여 UserSales 테이블을 만들어준다.
UserSales 에서 GROUP BY를 이용하여 년도,월,성별에 따라 집계해주고
SELECT절에서 user_id를 세어주는데 회원수이기 때문에 한명의 회원이 10번 구매한 것은 1번으로 봐야한다.
따라서 DISTINCT로 중복을 제거해준다.
WITH UserSales AS (
SELECT u.USER_ID AS user_id,
u.GENDER,
o.SALES_DATE,
YEAR(o.SALES_DATE) AS year,
MONTH(o.SALES_DATE) AS month
FROM USER_INFO u
INNER JOIN ONLINE_SALE o ON u.USER_ID = o.USER_ID
WHERE u.GENDER IS NOT NULL
)
SELECT year
, month
, gender
, COUNT(DISTINCT user_id)
FROM UserSales
GROUP BY year,month,gender
반응형
'데이터 분석 > Coding Test' 카테고리의 다른 글
[MySQL] 헤비 유저가 소유한 장소(프로그래머스) (0) | 2023.11.03 |
---|---|
[MySQL] 서울에 위치한 식당 목록 출력하기(프로그래머스) (0) | 2023.11.03 |
[SQL] 취소되지 않은 진료 예약 조회하기(프로그래머스) (0) | 2023.10.22 |
[SQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(프로그래머스) (0) | 2023.10.22 |
[SQL] 조건에 맞는 사용자 정보 조회하기(프로그래머스) (0) | 2023.10.22 |