<프로그래머스 고득점 SQL Kit>

[SQL 프로그래머스 GROUP BY] 년, 월, 성별 별 상품 구매 회원 수 구하기(ORACLE, MYSQL)

9566 2023. 5. 24. 18:59
728x90

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

-- MYSQL
SELECT DATE_FORMAT(SALES_DATE,'%Y') AS YEAR,
       DATE_FORMAT(SALES_DATE,'%m') AS MONTH, 
       GENDER, 
       COUNT(DISTINCT USER_ID) AS USERS
FROM USER_INFO  
NATURAL JOIN ONLINE_SALE 
WHERE GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER;


-- ORACLE
SELECT YEAR, MONTH, GENDER, COUNT(DISTINCT USER_ID) AS USERS
FROM (SELECT TO_CHAR(SALES_DATE,'YYYY') AS YEAR,
             TO_NUMBER(TO_CHAR(SALES_DATE,'MM')) AS MONTH, 
             GENDER, 
             USER_INFO.USER_ID 
      FROM USER_INFO, ONLINE_SALE
      WHERE USER_INFO.USER_ID = ONLINE_SALE.USER_ID AND GENDER IS NOT NULL)
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER[SQL 프로그래머스 GROUP BY] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(ORACLE, MYSQL)

728x90