У меня есть запрос на получение почасовых данных за день, но мне нужны данные за 5 минут - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть запрос DB2 SQL, который отлично работает для извлечения данных на почасовой основе, но я не могу преобразовать его для извлечения данных каждые 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

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Это был бы другой способ

group by DATE(lastupdate), HOUR(lastupdate), MINUTE(lastupdate)/5
0 голосов
/ 06 ноября 2019

Если вы измените

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

на

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

, вы можете легко уменьшить его до минуты.

В течение 10 минут вы можете отключить последнююцифра для минуты, но пять минут немного сложнее.

Сохраните TO_CHAR(lastupdate, 'DD-MON-YYYY HH24'), добавьте TO_CHAR(lastupdate, 'MI') и используйте оператор case для построения таких групп, как

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...