有表数据:
 
ID        时间点                       值
 1         20090519000000          12.3
 2        20090519000500          10.2
 3        20090519001000           0.3
 4        20090519001500          12.4
 5       20090519002000          34.0
 .
 .
 .
 .
 .以上时间戳时间间隔不固定,我想取20分钟或者30分钟一个点存到另一个表,需要求20分钟或者30分钟的平均值存到另张表,高手请指点!

解决方案 »

  1.   

    试试这个可以吗
    20分钟的
    select max(时间点),avg(值) from table group by ceil((时间点-'20090519000000')/2000);
    30分钟的
    select max(时间点),avg(值) from table group by ceil((时间点-'20090519000000')/3000);
      

  2.   

    写一个定时job,在job中取最大值和平均值,并保存到另外一张数据表中。
      

  3.   

    20分钟的
    select min(时间点)||'-'||max(时间点),avg(值) 
    from table group by ceil((decode(时间点,'20090519000000','20090519000001',时间点)-'20090519000000')/2000);
    30分钟的
    select min(时间点)||'-'||max(时间点),avg(值) 
    from table group by ceil((decode(时间点,'20090519000000','20090519000001',时间点)-'20090519000000')/3000);
      

  4.   

    需求是在oralce数据库中,另外表结构是别人设计的,时间点的类型是varchar的,以上sql我测试是错误的
      

  5.   

    lz能不能把我的sql的执行结果贴出来看看