Db2 我需要查询一天中每小时的数据,但需要5分钟的数据

Db2 我需要查询一天中每小时的数据,但需要5分钟的数据,db2,Db2,我有一个DB2SQL查询,它可以很好地按小时提取数据,但我不能进一步转换它,每5分钟提取一次数据 select count(1) as NO_ORDER, TO_CHAR(lastupdate, 'DD-MON-YYYY HH24') as HOUR_VALUE from orders where lastupdate > '2019-10-20 00:00:00.000' and lastupdate < '2019-10-20 23:59:59.000' group

我有一个DB2SQL查询,它可以很好地按小时提取数据,但我不能进一步转换它,每5分钟提取一次数据

select 
count(1) as NO_ORDER,
TO_CHAR(lastupdate, 'DD-MON-YYYY HH24') as HOUR_VALUE  
from orders 
where lastupdate > '2019-10-20 00:00:00.000' 
and lastupdate < '2019-10-20 23:59:59.000' 
group by TO_CHAR(lastupdate, 'DD-MON-YYYY HH24')with ur
选择
将(1)算作无订单,
将字符(lastupdate,'DD-MON-YYYY HH24')作为小时值
从命令
其中lastupdate>'2019-10-20 00:00:00.000'
最新更新<'2019-10-20 23:59:59.000'
分组依据至_CHAR(最新更新,'DD-MON-YYYY HH24')和ur
如果您更改

TO_CHAR(lastupdate, 'DD-MON-YYYY HH24') 

你可以很容易地把它缩短到一分钟

在10分钟内,你可以在一分钟内切断最后一个数字,但5分钟有点棘手

保留到\u CHAR(最新更新,'DD-MON-yyyyy HH24')
并将
添加到\u CHAR(lastupdate,'MI')
和用例语句来构建组,如

case when substr(TO_CHAR(lastupdate, 'MI'),2,1) in (0,1,2,3,4) then 1
     when substr(TO_CHAR(lastupdate, 'MI'),2,1) in (5,6,7,8,9) then 2
end

这将是另一种方式

group by DATE(lastupdate), HOUR(lastupdate), MINUTE(lastupdate)/5

您能否提供一些示例数据和所需的结果?旁注:假设
lastupdate
TIMESTAMP
数据类型,则您的日期范围是错误的。您应该使用一个包含性下限,
=
。实际上,将排除“2019-10-20”上午夜的行,但至少包含一微秒的行。我也非常怀疑你的上限,因为你排除了一天中的最后一秒——你几乎肯定想要“在第二天之前”,或者
<'2019-10-21 00:00:00'
group by DATE(lastupdate), HOUR(lastupdate), MINUTE(lastupdate)/5