IT/SQL

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

무지개는 환상 2024. 1. 25. 11:51

<USER_INFO> & <ONLINE_SALE> 테이블 구조

USER_INFO 테이블
ONLINE_SALE 테이블

 

<문제>

 

 

<문제 풀이>

SELECT YEAR(SALES_DATE) AS YEAR,
    MONTH(SALES_DATE) AS MONTH,
    GENDER,
    COUNT(DISTINCT A.USER_ID) AS USER
    
FROM USER_INFO AS A
 JOIN ONLINE_SALE AS B
 ON A.USER_ID = B.USER_ID
WHERE GENDER IS not null

GROUP BY 1,2,3
ORDER BY 1,2,3 ASC

 

판매일과 성별로 결과셋을 정렬하고 그 정렬 컬럼별로 구매 회원 수를 집계하는 문제이다.

판매일의 날짜를 위해 SELECT 절에 날짜 함수를 이용하였다.

젠더는 그냥 0과 1로 나타내었다. (만약 다른값으로 보여달라하면 case 구문 이용!)

구매 회원수의 값을 구하기 위해 처음엔 그냥 count 함수를 사용하였지만, 같은 유저가 2번 구매 했을 경우의 수를 위해 DISTINCT를 붙여서 작성해야한다.

 

* DISTINCT : 컬럼 또는 함수내 값에 대해 중복 값을 제거 하고 싶을 경우 DISTINCE를 붙여 사용

 

출처 : 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기