id      diff    uv       datetime
105     1     298166      2009-03-23 00:00:00
106     2     37096       2009-03-23 00:00:00
107     3     13303       2009-03-23 00:00:00
108     4     11465       2009-03-23 00:00:00
109     5     10389       2009-03-23 00:00:00
110     6     9573        2009-03-23 00:00:00
111     7     9819        2009-03-23 00:00:00
112     8     9908        2009-03-23 00:00:00
113     9     9282        2009-03-23 00:00:00
114     10     9172       2009-03-23 00:00:00
115     11     11834      2009-03-23 00:00:00
116     12     12076      2009-03-23 00:00:00
117     13     16753      2009-03-23 00:00:00
118     14     37081      2009-03-23 00:00:00

解决方案 »

  1.   

    select (diff-1)/7 week_diff , sum(uv) [nv总数]
    from tb
    group by (diff-1)/7
      

  2.   

     group by (diff-1)/7 即可
      

  3.   

    create table tb(diff int,    uv int)
    insert into tb values(1 ,298166)
    insert into tb values(2 ,37096 )
    insert into tb values(3 ,13303 )
    insert into tb values(4 ,11465 )
    insert into tb values(5 ,10389 )
    insert into tb values(6 ,9573 )
    insert into tb values(7 ,9819 )
    insert into tb values(8 ,9908 )
    insert into tb values(9 ,9282 )
    insert into tb values(10, 9172 )
    insert into tb values(11, 11834)
    insert into tb values(12, 12076)
    insert into tb values(13, 16753)
    insert into tb values(14, 37081)
    goselect (diff-1)/7 + 1 week_diff , sum(uv) [nv总数]
    from tb
    group by (diff-1)/7 + 1drop table tb
    /*
    week_diff   nv总数        
    ----------- ----------- 
    1           389811
    2           106106(所影响的行数为 2 行)
    */
      

  4.   


    select (diff-1)/7 as week_diff,
           sum(uv) as uv
    from T
    group by (diff-1)/7
      

  5.   

    thanks , 就知道这里有人可以帮我解决 , SQL用得太灵活了