我表里面有一个字段A的取值范围为1到100,我想查询出以下结果:A为1~1.5时,字段B的平均值;
A为1.5~2时,字段B的平均值;
A为2~2.5时,字段B的平均值;
以此类推,直到
A为99.5~100时,字段B的平均值;请问这个SQL该怎么写?

解决方案 »

  1.   

    应该要用到过程话的sql语句去
      

  2.   


    你的意思是不是要统计的时候,先建一临时表:
    id  tmin    tmax
    1   1       1.5
    2   1.5     2
    ....
    n   99.5    100然后这样:
    select avg(t1.B),t2.id  from histry as t1,test as t2
    where t1.A>=t2.tmin and t1.A<t2.tmax
    group by t2.id试了一下,这样是可以的。谢谢先。
    不知道有没有办法可以不用建临时表?
      

  3.   

    呵呵,是这个意思,MYSQL没有类似VBA的PARTITION函数,这个函数可以自动设置
    起、始、加(减)的常量,用这个函数直接分组就OK了,MYSQL不行。
      

  4.   

    换个思路,用这个试试
    select floor((351-50)/50)
    将351改为你的字段名,按这个分组试试
    select floor((a-50)/50),avg(b) from tt group by floor((a-50)/50)
      

  5.   

    直接:
    select floor(a/0.5),avg(b) from tt group by floor(a/0.5)
    也可以
      

  6.   

    select floor((a*100-50)/50),avg(b) from tt group by floor((a*100-50)/50)