有如下三个字段
分别是站号,时间,值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
然后再求出每个站在这些时间范围内的最大值
最好及递归,谢谢!!

解决方案 »

  1.   

    我基本明白了,任何个SQL都是好写的,就是时间段内的sum(value) 
    select sum(value) from table
    where times between mintime and maxtime关键是如何用递归写出多个SQL
      

  2.   

    select to_char(t1,'yyyy-mm-dd hh24:mi'),
           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)