본문 바로가기

개발/DB

[ORACLE] 월별 사용자 COUNT 조회하기

 

엊그제 퇴근하고 한 잔 신나게 하러 가는 길에 고객사 차장님이 문자가 오심.

 

어떤 교육에 대해 어떤 항목의 대상자만 연월별로 건수를 조회해 달라고 하심.

 

SELECT 
  COUNT(*) as COUNT, 
  TO_CHAR(TO_DATE(APPDATE), 'YYYY-MM') as MONTHLYDATA,
FROM
  TABLE_NAME 
WHERE 1=1
  and APPDATE>=20180101 and APPDATE<20200101
  and THEOPTION = 'Y'
GROUP BY TO_CHAR(TO_DATE(APPDATE), 'YYYY-MM')
ORDER BY MONTHLYDATA;

 

원래는 TO_CHAR만 써서 YYYY-MM값 뽑아내면 되는데,

여기 DB의 APPDATE의 데이터 타입이 VARCHAR2 인지라...

TO_DATE써서 날짜로 바꾸고 다시 형식에 맞게 TO_CHAR 돌려주었음

YYYY-MM을 하면 월별로 값을 가지고 올 수 있다.

본 쿼리는 THEOPTION이란 컬럼 값이 Y인 경우의 데이터만 뽑아옴

GROUP BY에 COUNT를 제외한 모든 컬럼이 들어가야 한다.

 (어떤 그룹으로써 카운터를 뽑아낼건지를 명시해주어야 함)

 

 

 

필요한 조건 더 걸어서 알아서 뽑아내면 됨,,, 

 

 

반응형