본문 바로가기
STUDY/SQL

MYSQL 시간별 통계쿼리

by NOTEEE 2018. 8. 23.

MARIADB에서 통계쿼리를 뽑아내야하는 일이 있었다.


POSTRES, ORACLE 같은 경우에는 통계쿼리를 구해낼 수 있는 함수가 있는 것에 반해,


MYSQL는 그렇지않은거 같았다.


찾아보는중


SET @n:=TIMESTAMP(NOW() + INTERVAL 1 HOUR);
SELECT (SELECT @n:= @n - INTERVAL 1 HOUR) DATE
FROM TABLE LIMIT 24
cs


위의 쿼리는 현재시간 기준으로 1시간간격 24개를 뽑아내는 쿼리이다.


------


위의 방식으로 하지않는다면

JAVA에서 1시간 간격으로 배열을 정의 후 MYSQL-MYBATIS에서 foreach구문을 이용하여 


UNION ALL하여 시간별 테이블을 생성 후 JOIN하는 방식으로 이용해야 할 것 같다.

<foreach collection="dateList" item="item" index="index">
<if test="index > 0">
UNION ALL
</if>
SELECT #{item, jdbcType=VARCHAR} AS date
</foreach>
 
SELECT '2018-08-23 00' AS date
UNION ALL
SELECT '2018-08-23 01' AS date
UNION ALL
SELECT '2018-08-23 02' AS date
UNION ALL
SELECT '2018-08-23 03' AS date
cs


    

'STUDY > SQL' 카테고리의 다른 글

TIBERO DATA IMPORT, EXPORT  (0) 2018.07.02
GENERATE_SERIES()  (0) 2018.05.04
LTRIM, RTRIM, TRIM  (0) 2018.02.23
REPLACE  (0) 2018.02.23
REGEXP_SUBSTR  (0) 2018.02.22