SELECT To_char(your_column, 'YYYY-MM-DD HH24') AS hourly,
Count(*) AS numPerHour
FROM your_table
WHERE your_column > '1-DEC-18'
AND your_column < '4-DEC-18'
GROUP BY To_char(your_column, 'YYYY-MM-DD HH24')
ORDER BY hourly;
要获取我使用的如下每小时数据,选择s.req_submit_date,EXTRACT(HOUR FROM to_timestamp(s.req_submit_date,'yyyy-mm-dd hh24:mi:ss'))hr,count(*)from your_table s where s.req_submit_date〉= to_date('20230414 ',' yyyymmdd')and s.req_submit_date〈to_date('20230416 ',' yyyymmdd')group by s.req_submit_date,EXTRACT(HOUR FROM to_timestamp(s.req_submit_date,'yyyy-mm-dd hh24:mi:ss'))order by s.req_submit_date,hr;
4条答案
按热度按时间djp7away1#
使用TO_CHAR function来格式化DATETIME列,以便您可以将其GROUP BY用于聚合函数:
8cdiaqws2#
为什么不创建另一个存储计数和日期的表呢?创建一个每小时运行一次的数据库作业,并将计数和系统日期放在新表中。您的代码将只是查询新表。
每小时运行的数据库作业类似于
你将查询表othertable_count而不是查询你的原始表。
bmp9r5qi3#
mklgxw1f4#
要获取我使用的如下每小时数据,选择s.req_submit_date,EXTRACT(HOUR FROM to_timestamp(s.req_submit_date,'yyyy-mm-dd hh24:mi:ss'))hr,count(*)from your_table s where s.req_submit_date〉= to_date('20230414 ',' yyyymmdd')and s.req_submit_date〈to_date('20230416 ',' yyyymmdd')group by s.req_submit_date,EXTRACT(HOUR FROM to_timestamp(s.req_submit_date,'yyyy-mm-dd hh24:mi:ss'))order by s.req_submit_date,hr;