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

iinnuyh_s·2024년 1월 3일
0

SQL

목록 보기
4/17
post-thumbnail
post-custom-banner

년, 월, 성별 별 상품 구매 회원 수 구하기

풀이

  • GROUP BY 문제
  • DISTINCT 를 안 써서 틀렸었다
    🙆‍♀️ 정답 풀이
    -- USER_INFO, ONLINE_SALE  테이블
    -- 년, 월, 성별 별로 상품을 구매한 회원수를 집계
    -- 년, 월 성별 기준 오름차순 정렬
    -- 성별 정보가 없으면 제외
    SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE) AS MONTH, GENDER,COUNT(DISTINCT(USER_INFO.USER_ID)) AS USERS
    FROM USER_INFO JOIN ONLINE_SALE
    ON USER_INFO.USER_ID=ONLINE_SALE.USER_ID
    WHERE GENDER IS NOT NULL
    GROUP BY YEAR, MONTH, GENDER
    ORDER BY YEAR, MONTH, GENDER;
    • 년, 월, 성별 별로 구하라고 했으니까, GROUP BY YEAR,NONTH,GENDER
    • 년, 월, 성별 기준 오름차순 정렬이므로 ORDER BY YEAR,MONTH,GENDER
      이 부분을 ORDER BY 1,2,3 으로 해도 된다.
    • 성별 정보가 없으면 제외 -> WHERE 절에 조건 추가.
    • USER_INFO 테이블과 ONLINE_SALE 테이블을 JOIN하는데, 공통 컬럼이 USER_ID 이므로 이걸로 묶음.
    • 같은 날짜에 같은 USER_ID를 가진 유저가 여러번 구매할 수 있으므로,DISTINCT(USER_INFO.USER_ID) 를 해줘야 된다.
post-custom-banner

0개의 댓글