我的数据库是一个油田管道的监测的数据,主要是监测管道的油,水,气三相数据,管道中油水气的速度是不一样的
主要表结构 设计如下
表名:油2009年3月3日10点10分10秒时长100分钟
时间点                              含油率                    流速       
2009-3-3 10:10:10                   30.54                      3.24
2009-3-3 10:10:11                   31.54                      3.14
2009-3-3 10:10:12                   30.24                      3.14
2009-3-3 10:10:13                   30.59                      3.21
2009-3-3 10:10:14                   30.00                      3.19
...................其他监测相也与其类似。
每100分钟满以后以当前时间建立一个新表例如我想查找某个时间点以后250分钟内的含油率的平均值,我怎么 写SQL语句。这种表设计方式 有没有什么不妥?

解决方案 »

  1.   

    你不是有时间点了吗?直接用那个字段来计算即可.declare @dt as datetime
    set @dt = '某个时间点'select avg(含油率) from tb where datediff(mi , @dt , 时间点) <= 250
      

  2.   

    如果是平均值  直接avg函数可以搞定
      

  3.   

    select avg(含油率) from tb where 时间点>=@时间点
    and 时间点 <= dateadd(mi,250,@时间点)
      

  4.   


    select *
    from (
     select * from 油2009年3月3日10点10分10秒时长100分钟
     union all
     select * from  油2009年3月3日10点12分10秒时长100分钟
     ...
    )
      

  5.   


    每秒约5个左右吧,24小时全部监测,初次接触数据库,有很多的不懂,我现在用的是sql  server 2000