有如下三个字段
分别是站号,时间,值STCODE times values
A1 2007-01-01 00:02 8
A2 2007-01-02 10:02 10
A3 2007-01-01 05:01 9
A1 2007-01-03 01:02 5
A2 2007-01-01 03:12 15
A2 2007-01-04 09:22 6
A4 2007-01-07 06:24 8
A2 2007-01-06 07:02 5
... ..... ...有一两百个站,一分钟有两条数据,现在要求出5天以来,最大两小时间的最大值(是一个累计值),及起止时间.
注:规定每次可向前推进5分钟。
如下:
分别求出从
2007-01-01 00:00 到2007-01-06 00:00 的sum(values)
2007-01-01 00:00 到2007-01-01 02:00
2007-01-01 00:05 到2007-01-01 02:05
2007-01-01 00:10 到2007-01-01 02:10
2007-01-01 00:15 到2007-01-01 02:15
2007-01-01 00:20 到2007-01-01 02:20
..........
2007-01-05 22:00 到2007-01-06 00:00
然后再求出每个站在这些时间范围内的最大值
最好及递归,谢谢!!
分别是站号,时间,值STCODE times values
A1 2007-01-01 00:02 8
A2 2007-01-02 10:02 10
A3 2007-01-01 05:01 9
A1 2007-01-03 01:02 5
A2 2007-01-01 03:12 15
A2 2007-01-04 09:22 6
A4 2007-01-07 06:24 8
A2 2007-01-06 07:02 5
... ..... ...有一两百个站,一分钟有两条数据,现在要求出5天以来,最大两小时间的最大值(是一个累计值),及起止时间.
注:规定每次可向前推进5分钟。
如下:
分别求出从
2007-01-01 00:00 到2007-01-06 00:00 的sum(values)
2007-01-01 00:00 到2007-01-01 02:00
2007-01-01 00:05 到2007-01-01 02:05
2007-01-01 00:10 到2007-01-01 02:10
2007-01-01 00:15 到2007-01-01 02:15
2007-01-01 00:20 到2007-01-01 02:20
..........
2007-01-05 22:00 到2007-01-06 00:00
然后再求出每个站在这些时间范围内的最大值
最好及递归,谢谢!!
select sum(value) from table
where times between mintime and maxtime关键是如何用递归写出多个SQL
to_char(t1+2/24,'yyyy-mm-dd hh24:mi'),
sum_values
from (select b.t1, sum(a.value) sum_values
from a,
(select (rownum-1)*5/1440+to_date('2007-1-1','yyyy-mm-dd') t1
from all_objects
where rownum<=1440-23) b
where a.times(+)>=b.t1 and a.times(+)<b.t1+1/12
group by b.t1)