huginn muninn

[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 SQL 본문

코딩테스트

[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 SQL

_maddy 2024. 6. 21. 06:32

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

-- 코드를 입력하세요
-- 년,월 성별별로 상품을 구매한 회원수를 집계
-- 년,월 성별을 기준으로 오름차순 정렬

SELECT
   YEAR(O.SALES_DATE) AS YEAR,
   MONTH(O.SALES_DATE) AS MONTH,
   U.GENDER,
   COUNT(DISTINCT U.USER_ID) AS USERS
FROM ONLINE_SALE AS O
LEFT JOIN USER_INFO AS U ON O.USER_ID=U.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY 
   YEAR(O.SALES_DATE),
   MONTH(O.SALES_DATE),
   U.GENDER
ORDER BY 1,2,3

 

별로 어렵지 않은 문제, 4단계의 탈을 쓴 2단계 되시겠다. 

다만 order 테이블을 정확히 파악하지 않으면 틀리기 쉽다. 왜냐면 나도 처음에 틀렸거등

쉽다면서 틀린 나 꽤나 모순적

 

online_sale 테이블을 보면 판매 아이디, 유저아이디, 제품 아이디, 판매가격, 판매 날짜 컬럼이 있다. 우리가 풀고자 하는 문제는 년, 월, 성별별로 상품을 구매한 '회원수'를 구하는 것이므로 판매 내역에 있는 모든 user_id를 세면안된다. 구매한 회원수만 세면 되니까 꼭 중복 유저아이디를 제거해주어야 한다.