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 |