oracle 2시간 단위 데이터 통계 쿼리 질문.. 0 3 5,789

by noskiller [SQL Query] oracle [2020.03.18 18:01:00]


데이터 타입은 DATE 형식이고

 

2시간단위로 통계를 구하고싶은데 질문드립니다.

 

select substr(to_char(study_dttm,'YYYYMMDDHH24'),9,11), count(*) from study where study_dttm > sysdate -1
group by substr(to_char(study_dttm,'YYYYMMDDHH24'),9,11)

 

해당 쿼리로 시간단위로 달라, group by 시 한시간 통계는 나오는데 2시간 단위 통계는 어떻게할지 질문드립니다.

 

도와주세요!

by 마농 [2020.03.19 08:28:50]
WITH study AS
( -- Test Sample --
SELECT sysdate - (LEVEL-1)/24 study_dttm
  FROM dual
 CONNECT BY LEVEL <= 26
)
SELECT TO_CHAR(study_dttm, 'yyyymmdd')
       || LPAD(FLOOR(TO_CHAR(study_dttm, 'hh24') / 2) * 2, 2, '0') tm
     , COUNT(*) cnt
  FROM study
-- WHERE study_dttm >= sysdate - 1
 WHERE study_dttm >= TRUNC(sysdate) - 1 + (FLOOR(TO_CHAR(sysdate, 'hh24') / 2) * 2 + 2) / 24
 GROUP BY TO_CHAR(study_dttm, 'yyyymmdd')
       || LPAD(FLOOR(TO_CHAR(study_dttm, 'hh24') / 2) * 2, 2, '0')
 ORDER BY tm
;

 


by noskiller [2020.03.19 09:33:04]

감사합니다. 그런데 해당 컬럼에 date형식으로 시간이 들어가있는데, 데이터에 있는 시간 기준으로 8~10시 몇건 10~12시 몇건 이렇게 통계를 구할 수 있을까요?

-> 제가 확인을 잘못했네요 잘됩니다. 감사합니다.


by 마농 [2020.03.19 09:59:05]

그렇게 한건데요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입