本帖最后由 skk017 于 2012-03-25 15:57:54 编辑

解决方案 »

  1.   


    --> 测试数据:[tracy]
    go
    if object_id('[tracy]') is not null 
    drop table [tracy]
    go
    create table [tracy](
    [AZWZ] varchar(11),
    [PJZ] numeric(3,2),
    [ZDZ] numeric(3,2),
    [BCSJ] datetime
    )
    go
    insert [tracy]
    select '22118采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:00:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22118采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:05:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:05:00'
    insert [tracy]
    select '22118采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:00:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22118采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:05:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:05:00'
    insert [tracy]
    select '22118采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:00:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:00:00' union all
    select '22118采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '1330采面',0.33,0.34,'2010-1-1 0:05:00' union all
    select '22153回风巷',0.33,0.34,'2010-1-1 0:05:00' union all
    select '223水仓',0.33,0.34,'2010-1-1 0:05:00';with t
    as(
    select *,NTILE(3)over(partition by [AZWZ] order by [BCSJ] asc) as title
    from tracy
    )
    select [AZWZ],AVG([PJZ]) [PJZ],AVG([PJZ]) [PJZ],
    (select MIN([BCSJ]) from t a where a.title=b.title and a.AZWZ=b.AZWZ) 
    as AZWZ
    from t b group by [AZWZ],title/*
    AZWZ PJZ PJZ AZWZ
    1330采面 0.330000 0.330000 2010-01-01 00:00:00.000
    1330采面 0.330000 0.330000 2010-01-01 00:00:00.000
    1330采面 0.330000 0.330000 2010-01-01 00:05:00.000
    22118采面 0.330000 0.330000 2010-01-01 00:00:00.000
    22118采面 0.330000 0.330000 2010-01-01 00:00:00.000
    22118采面 0.330000 0.330000 2010-01-01 00:05:00.000
    22153回风巷 0.330000 0.330000 2010-01-01 00:00:00.000
    22153回风巷 0.330000 0.330000 2010-01-01 00:00:00.000
    22153回风巷 0.330000 0.330000 2010-01-01 00:05:00.000
    223水仓 0.330000 0.330000 2010-01-01 00:00:00.000
    223水仓 0.330000 0.330000 2010-01-01 00:00:00.000
    223水仓 0.330000 0.330000 2010-01-01 00:05:00.000
    */由于每天二十四小时,每五分钟一行数据,所以没八个小时内的数据量相等,我采取按照
    AZWZ分区分组(3组),这样的话每天的数据正好可以八个小时一组。然后再通过对AZWZ
    的不同组的数据求平均值。我的测试数据只是随意复制了三次,已达到分为三组的效果
      

  2.   

    select
      azwz,avg(pjz) as pjz,max(zdz) as zdz,
      convert(varchar(10),bcsj,120) as bcsj
    from
      MNL1106
    where
      azwz='11202回风巷T3'
    group by
      azwz,convert(varchar(10),bcsj,120) 
    order by 4  上面是按1天的平均值和最大值算的sql语句,我现在想按每8个小时算平均值和最大值,一个azwz(安装位置)一天有3个平均值和3个最大值。
      
      

  3.   


    我的那个给你解释一下:一天二十四个小时,每小时60分钟,12条数据,那么一天每个AZWZ拥有12x24条数据
    ,你的表里对应的数据也是这样的吧?
    那么我现在把每个AZWZ下的数据分为三组,是不是每一组对应的数据就是每八个小时的数据?
    然后我再求每一天的每个AZWZ下每一个组的平均值,这个不就是八个小时的平均数据了吗?
      

  4.   

    谢谢了 是这样的,不过我不知道如何在查询窗口输入上面的sql语句,看起来挺复杂的,能不能简化一下,就像我上面列出的那种sql语句,能直接运行
      

  5.   

    你在你的MSSQL启动菜单里找到“SQL Server Management Studio”,打开它,然后左上角新建查询
    输入以上代码就好了
      

  6.   

    你的SQL代码是不是还得建一个表tracy,然后把数据逐条添加到表里,我想直接能查询我数据库里的表,还有azwz不光有3个,还有好多,我只列出了部分,这个数据库记录了2年的数据
    select
      azwz,avg(pjz) as pjz,max(zdz) as zdz,
      convert(varchar(10),bcsj,120) as bcsj
    from
      表名
    where
      azwz='11202回风巷'
    group by
      azwz,convert(varchar(10),bcsj,120)  
    order by 4
    能不能把上面的代码改一下,上面是按24小时的平均值查询的,我想改成按8个小时的平均值查询,0点到8点,8点到16点,16点到24点
    麻烦各位了
      

  7.   


    不用啊,你直接把我的tracy换成你的数据表名就好了。
      

  8.   


    select * from sheet2$with t
    as(
    select *,
        case 
        when convert(varchar(8),[BCSJ],24) between '00:00:00' and '07:55:00' then CONVERT(varchar(10),[BCSJ],120)+' 00:00:00'
        when convert(varchar(8),[BCSJ],24) between '08:00:00' and '15:55:00' then CONVERT(varchar(10),[BCSJ],120)+' 08:00:00'
        when convert(varchar(8),[BCSJ],24) between '16:00:00' and '23:55:00' then CONVERT(varchar(10),[BCSJ],120)+' 16:00:00'
        else '' end as 时间段 from sheet2$
    )select [AZWZ],avg([PJZ]) as [PJZ],avg([ZDZ]) as [ZDZ],
           (select MIN([BCSJ]) from t b
                  where b.AZWZ=a.AZWZ and b.时间段=a.时间段) as bcsj
     from t a group by [AZWZ],时间段
     order by 1,4
    create clustered index AZWZ_BCSJ_IND on sheet2$(AZWZ,BCSJ)
    drop index AZWZ_BCSJ_INDA on sheet2$
    /*
    AZWZ PJZ ZDZ bcsj
    15178里块采面T0 0.256354166666667 0.2859375 2010-12-01 00:00:00.000
    15178里块采面T0 0.261666666666666 0.287395833333333 2010-12-01 08:00:00.000
    15178里块采面T0 0.226631578947369 0.252842105263158 2010-12-01 16:00:00.000
    15178里块采面T0 0.253020833333333 0.280729166666667 2010-12-02 00:00:00.000
    15178里块采面T0 0.277604166666667 0.335520833333333 2010-12-02 08:00:00.000
    15178里块采面T0 0.204270833333333 0.2240625 2010-12-02 16:00:00.000
    15178里块采面T0 0.1609375 0.1703125 2010-12-03 00:00:00.000
    15178里块采面T0 0.232083333333334 0.257916666666667 2010-12-03 08:00:00.000
    15178里块采面T0 0.2853125 0.31125 2010-12-03 16:00:00.000
    15178里块采面T0 0.285104166666667 0.337395833333333 2010-12-04 00:00:00.000
    15178里块采面T0 0.269166666666667 0.303958333333333 2010-12-04 08:00:00.000
    15178里块采面T0 0.266666666666667 0.291979166666667 2010-12-04 16:00:00.000
    15178里块采面T0 0.230520833333333 0.251770833333334 2010-12-05 00:00:00.000
    15178里块采面T0 0.253125 0.279791666666667 2010-12-05 08:00:00.000
    15178里块采面T0 0.310520833333333 0.337395833333333 2010-12-05 16:00:00.000
    15178里块采面T0 0.3584375 0.407083333333333 2010-12-06 00:00:00.000
    15178里块采面T0 0.343229166666667 -416.275 2010-12-06 08:00:00.000
    15178里块采面T0 0.335729166666667 0.3584375 2010-12-06 16:00:00.000
    15178里块采面T0 0.330625 0.3528125 2010-12-07 00:00:00.000
    15178里块采面T0 0.417708333333333 0.4678125 2010-12-07 08:00:00.000
    15178里块采面T0 0.380520833333333 0.412291666666667 2010-12-07 16:00:00.000
    15178里块采面T0 0.326666666666666 0.355833333333333 2010-12-08 00:00:00.000
    15178里块采面T0 0.2684375 0.295729166666667 2010-12-08 08:00:00.000
    15178里块采面T0 0.240833333333334 0.253125 2010-12-08 16:00:00.000
    15178里块采面T0 0.205208333333333 0.2753125 2010-12-09 00:00:00.000
    15178里块采面T0 0.207916666666667 0.211979166666667 2010-12-09 08:00:00.000
    15178里块采面T0 0.281145833333333 0.3103125 2010-12-09 16:00:00.000
    15178里块采面T0 0.329791666666667 0.356770833333333 2010-12-10 00:00:00.000
    15178里块采面T0 0.3834375 0.4225 2010-12-10 08:00:00.000
    15178里块采面T0 0.494583333333333 0.548541666666667 2010-12-10 16:00:00.000
    15178里块采面T0 0.429583333333333 0.458229166666667 2010-12-11 00:00:00.000
    15178里块采面T0 0.451190476190476 0.48202380952381 2010-12-11 08:00:00.000
    15178里块采面T0 0.398645833333333 0.427708333333333 2010-12-11 16:00:00.000
    15178里块采面T0 0.426458333333333 0.452604166666667 2010-12-12 00:00:00.000
    15178里块采面T0 0.3690625 -416.2571875 2010-12-12 08:00:00.000
    15178里块采面T0 0.3734375 0.404270833333334 2010-12-12 16:00:00.000
    15178里块采面T0 0.353958333333333 0.375729166666667 2010-12-13 00:00:00.000
    15178里块采面T0 0.355 0.382708333333333 2010-12-13 08:00:00.000
    15178里块采面T0 0.351770833333333 0.384791666666666 2010-12-13 16:00:00.000
    15178里块采面T0 0.337916666666666 0.361979166666667 2010-12-14 00:00:00.000
    15178里块采面T0 0.182916666666667 0.21375 2010-12-14 08:00:00.000
    15178里块采面T0 0.365416666666667 0.391979166666667 2010-12-14 16:00:00.000
    15178里块采面T0 0.466666666666667 0.486458333333333 2010-12-15 00:00:00.000
    15178里块采面T0 0.488125 0.524375 2010-12-15 08:00:00.000
    15178里块采面T0 0.48125 0.512083333333333 2010-12-15 16:00:00.000
    15178里块采面T0 0.491145833333333 0.514166666666667 2010-12-16 00:00:00.000
    15178里块采面T0 0.507708333333334 0.603333333333333 2010-12-16 08:00:00.000
    15178里块采面T0 0.512395833333333 0.5453125 2010-12-16 16:00:00.000
    15178里块采面T0 0.5184375 0.541354166666667 2010-12-17 00:00:00.000
    15178里块采面T0 0.444583333333334 0.454375 2010-12-17 08:00:00.000
    15178里块采面T0 0.443541666666667 0.45625 2010-12-17 16:00:00.000
    15178里块采面T0 0.4628125 0.482604166666667 2010-12-18 00:00:00.000
    15178里块采面T0 0.464479166666666 0.481354166666667 2010-12-18 08:00:00.000
    15178里块采面T0 0.4515625 0.472291666666667 2010-12-18 16:00:00.000
    15178里块采面T0 0.385263157894737 0.408947368421053 2010-12-19 00:00:00.000
    15178里块采面T0 0.385833333333334 0.406458333333333 2010-12-19 08:00:00.000
    15178里块采面T0 0.476145833333333 0.5021875 2010-12-19 16:00:00.000
    15178里块采面T0 0.547708333333334 0.577604166666666 2010-12-20 00:00:00.000
    15178里块采面T0 0.560833333333333 0.593020833333333 2010-12-20 08:00:00.000
    15178里块采面T0 0.584375 0.629270833333333 2010-12-20 16:00:00.000
    15178里块采面T0 0.5915625 0.6665625 2010-12-21 00:00:00.000
    15178里块采面T0 0.580520833333333 0.639895833333333 2010-12-21 08:00:00.000
    15178里块采面T0 0.480208333333334 0.52375 2010-12-21 16:00:00.000
    15178里块采面T0 0.454166666666667 0.491458333333333 2010-12-22 00:00:00.000
    15178里块采面T0 0.464947368421053 0.490842105263158 2010-12-22 08:00:00.000
    15178里块采面T0 0.438020833333333 0.46125 2010-12-22 16:00:00.000
    15178里块采面T0 0.4203125 0.444895833333333 2010-12-23 00:00:00.000
    15178里块采面T0 0.3296875 -312.1125 2010-12-23 08:00:00.000
    15178里块采面T0 0.347083333333333 0.366041666666666 2010-12-23 16:00:00.000
    15178里块采面T0 0.361041666666667 0.379270833333333 2010-12-24 00:00:00.000
    15178里块采面T0 0.381145833333333 -1249.57322916667 2010-12-24 08:00:00.000
    15178里块采面T0 0.409791666666667 0.428541666666667 2010-12-24 16:00:00.000
    15178里块采面T0 0.417083333333333 0.436354166666666 2010-12-25 00:00:00.000
    15178里块采面T0 0.293958333333333 0.344895833333333 2010-12-25 08:00:00.000
    15178里块采面T0 0.378020833333333 0.396875 2010-12-25 16:00:00.000
    15178里块采面T0 0.279479166666667 0.315520833333333 2010-12-26 00:00:00.000
    15178里块采面T0 0.41625 0.512291666666667 2010-12-26 08:00:00.000
    15178里块采面T0 0.398125 0.440416666666667 2010-12-26 16:00:00.000
    15178里块采面T0 0.402916666666667 0.446875 2010-12-27 00:00:00.000
    15178里块采面T0 0.600625 0.675625 2010-12-27 08:00:00.000
    15178里块采面T0 0.631458333333333 0.673854166666667 2010-12-27 16:00:00.000
    15178里块采面T0 0.599791666666667 -416.022291666667 2010-12-28 00:00:00.000
    15178里块采面T0 0.6578125 -103.438854166667 2010-12-28 08:00:00.000
    15178里块采面T0 0.635104166666667 0.6575 2010-12-28 16:00:00.000
    15178里块采面T0 0.649479166666667 0.684791666666666 2010-12-29 00:00:00.000
    15178里块采面T0 0.678854166666667 0.742083333333333 2010-12-29 08:00:00.000
    15178里块采面T0 0.543229166666667 0.578020833333333 2010-12-29 16:00:00.000
    15178里块采面T0 0.471413043478261 0.489021739130434 2010-12-30 00:20:00.000
    15178里块采面T0 0.495000000000001 0.548958333333333 2010-12-30 08:00:00.000
    15178里块采面T0 0.510625 0.533333333333333 2010-12-30 16:00:00.000
    15178里块采面T0 0.5065625 0.509270833333333 2010-12-31 00:00:00.000
    15178里块采面T0 0.491875 0.497708333333333 2010-12-31 08:00:00.000
    15178里块采面T0 0.486145833333332 0.491562499999999 2010-12-31 16:00:00.000
    */
    加索引后2秒实现上诉结果
      

  9.   

    在吗  还是不行  没有where azwz=''  要不远程操作一下吧