Sql 如何将分钟添加到时间戳?
我有一个表,其中有5分钟间隔的数据,即5 10 15 20 该表有3列(id编号、日志日期、计数编号),有数百万行。到目前为止,我一直在使用下面的查询来汇总特定日期的“计数”列 我需要按小时级别进行聚合Sql 如何将分钟添加到时间戳?,sql,oracle,timestamp,Sql,Oracle,Timestamp,我有一个表,其中有5分钟间隔的数据,即5 10 15 20 该表有3列(id编号、日志日期、计数编号),有数百万行。到目前为止,我一直在使用下面的查询来汇总特定日期的“计数”列 我需要按小时级别进行聚合 select id, SUM(count) log_ts + DECODE(TO_CHAR(log_ts , 'MI'), '05', 55/1440, '10', 50/1440, '15', 45/1440, '20',40/1440,'25',35/1440,'30',30/14
select id, SUM(count)
log_ts + DECODE(TO_CHAR(log_ts , 'MI'), '05', 55/1440, '10', 50/1440, '15', 45/1440, '20',40/1440,'25',35/1440,'30',30/1440,'35',25/1440,'40',20/1440,'45',15/1440,'50',10/1440,'55',5/1440,0) TS
from example_table
Group by id,
log_ts + DECODE(TO_CHAR(log_ts , 'MI'), '05', 55/1440, '10', 50/1440, '15', 45/1440, '20',40/1440,'25',35/1440,'30',30/1440,'35',25/1440,'40',20/1440,'45',15/1440,'50',10/1440,'55',5/1440,0)
是否有其他方法可以按小时级别聚合时间列,该时间列的数据为5分钟级别。您需要使用,它可以将日期/数字等截断为指定的时间单位
对于每小时,时间为HH
。这使您的查询:
select trunc(log_ts, 'HH'), sum(count)
from example_table
group by trunc(log_ts, 'HH')
我假设您列的名称实际上不是COUNT
。如果是的话,我建议你把它改成非关键词的东西。试试这样
SELECT id, trunc(log_ts, 'HH'), sum(count)
FROM example_table
GROUP BY id, trunc(log_ts, 'HH');