Oracle按时间段统计数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle按时间段统计数据相关的知识,希望对你有一定的参考价值。
我想按时间段分组显示 。。。
比如有数据是 2010-8-13 09:46:05
2010-8-13 10:09:05
2010-8-13 10:46:05
我要按照每30分钟分段统计,然后统计字段显示成 00:00-00:30,其他的统计我会
一天24小时 48个字段。。。只要写出2个字段给我参考转化就可以了。。只统计1天的数据
DTIME V1 V2
----------------- ------ ------
20100929 10:22:13 200 200
20100929 10:32:13 200 200
20100929 15:32:06 200 200
20100929 15:42:06 200 200
20100929 16:22:00 300 300
20100929 16:32:00 200 300
20100929 17:01:51 100 100
20100929 17:11:51 100 100
20100929 17:51:45 100 100
20100929 18:01:45 100 100
20100929 18:21:33 0 100
20100929 18:31:33 100 100
12 rows selected
SQL> select to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30)*30/60/24),'hh24:mi')||'-'||to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30+1)*30/60/24),'hh24:mi') period, avg(v1),sum(v2),count(*) "ROWS" from test where trunc(dtime)=to_date(&day,'yyyymmdd') group by to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30)*30/60/24),'hh24:mi')||'-'||to_char((trunc(sysdate)+trunc((dtime-trunc(sysdate))*24*60/30+1)*30/60/24),'hh24:mi') order by 1;
PERIOD AVG(V1) SUM(V2) ROWS
----------- ---------- ---------- ----------
10:00-10:30 200 200 1
10:30-11:00 200 200 1
15:30-16:00 200 400 2
16:00-16:30 300 300 1
16:30-17:00 200 300 1
17:00-17:30 100 200 2
17:30-18:00 100 100 1
18:00-18:30 50 200 2
18:30-19:00 100 100 1
9 rows selected
SQL>本回答被提问者采纳
以上是关于Oracle按时间段统计数据的主要内容,如果未能解决你的问题,请参考以下文章