반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131532
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT
YEAR(SALES_DATE) AS YEAR,
MONTH(SALES_DATE) AS MONTH,
U.GENDER AS GENDER,
COUNT(DISTINCT(U.USER_ID)) AS USERS
FROM USER_INFO U
JOIN ONLINE_SALE O
ON U.USER_ID = O.USER_ID
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE), U.GENDER
HAVING GENDER IS NOT NULL
ORDER BY YEAR, MONTH, GENDER
먼저 USER_INFO(U) 테이블과 ONLINE_SALE(O) 테이블을 USER_ID 기준으로 JOIN을 했습니다.
- 년 : YEAR(SALES_DATE)
- 월 : MONTH(SALES_DATE)
- 성별 : U.GENDER
를 기준으로 그룹화를 하였고
'회원 수' 를 집계해야하기 때문에 COUNT()함수를 사용하였습니다.
이때 중복회원은 제거해야하기 때문에 DISTINCT() 사용하였습니다.
성별 정보가 없는 경우 결과에서 제거하기 위해 HAVING 문에서 조건을 주어 처리하였고
마지막으로 ORDER BY문에서 년(YEAR), 월(MONTH), 성별(GENDER)를 기준으로 오름차순 정렬했습니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 주문량이 많은 아이스크림들 조회하기 (0) | 2022.12.09 |
---|---|
[코딩테스트] 프로그래머스 취소되지 않은 진료 예약 조회하기 MySQL (0) | 2022.12.08 |
[코딩테스트] 프로그래머스 서울에 위치한 식당 목록 출력하기 MySQL (0) | 2022.12.07 |
[코딩테스트] 프로그래머스 우유와 요거트가 담긴 장바구니 MySQL (0) | 2022.12.07 |
[코딩테스트] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL (1) | 2022.12.06 |