관리 메뉴

오늘도 배운다

년, 월, 성별 별 상품 구매 회원 수 구하기 / 프로그래머스, SQL 코딩테스트 연습GROUP BY 본문

코딩테스트연습(SQL)

년, 월, 성별 별 상품 구매 회원 수 구하기 / 프로그래머스, SQL 코딩테스트 연습GROUP BY

LearnerToRunner 2022. 11. 25. 07:27

문제

USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.

 

제출답안(MySQL)

SELECT YEAR(sales_date) AS year,
    MONTH(sales_date) AS month, 
    gender,
    COUNT(DISTINCT os.user_id) AS users
FROM online_sale AS os JOIN user_info AS ui ON os.user_id = ui.user_id
WHERE gender IS NOT NULL
GROUP BY YEAR(sales_date), MONTH(sales_date), gender
ORDER BY 1, 2, 3

 

 

 

풀이(MySQL)

더보기

user_id 기준으로 두 테이블을 조인한 뒤 조회

SELECT * FROM online_sale AS os JOIN user_info AS ui ON os.user_id = ui.user_id

 

gender 값이 null이 아닌 데이터를 연, 월, 성별로 그룹화

WHERE gender IS NOT NULL
GROUP BY YEAR(sales_date), MONTH(sales_date), gender

 

그룹별로 연, 월, 성별, 중복을 제외한 유저 수

SELECT YEAR(sales_date) AS year,
    MONTH(sales_date) AS month, 
    gender,
    COUNT(DISTINCT os.user_id) AS users

 

 

 

문제 바로가기(MySQL) 

728x90
Comments