본문 바로가기
SQL

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

by hoshi03 2024. 12. 16.

 

1. 구매기록이 있는 회원 아이디 월별 조회

SELECT USER_ID, TO_CHAR(SALES_DATE, 'YYYY-MM') ODATE, SALES_DATE
     FROM ONLINE_SALE
     GROUP BY USER_ID, TO_CHAR(SALES_DATE, 'YYYY-MM'), SALES_DATE

 

2. 년, 월, 성별별로 그룹바이하면서 id 중복되지 않게 세어주기

 

SELECT TO_CHAR(SALES_DATE,'YYYY') YEAR, 
       TO_NUMBER(TO_CHAR(SALES_DATE,'MM')) MONTH, 
       U.GENDER,
       COUNT(DISTINCT O.USER_ID) USERS
FROM USER_INFO U
JOIN 
    (SELECT USER_ID, TO_CHAR(SALES_DATE, 'YYYY-MM') ODATE, SALES_DATE
     FROM ONLINE_SALE
     GROUP BY USER_ID, TO_CHAR(SALES_DATE, 'YYYY-MM'), SALES_DATE) O
ON U.USER_ID = O.USER_ID 
WHERE GENDER IS NOT NULL
GROUP BY  TO_CHAR(SALES_DATE,'YYYY'), 
          TO_CHAR(SALES_DATE,'MM'), 
          U.GENDER
ORDER BY 1,2,3;