Select
AVG(a) as a,  
AVG(b) as b
from tt
having  AVG(a)>0 and AVG(a)<3 and AVG(b)<3 and AVG(b)>1目前是求的是在范围内的平均数,然后,想把这些求出的值做个统计,要怎么写?

解决方案 »

  1.   

    就是,在算出那个 范围平均数后, 把范围平均数在算个总的平局数!对了,一开始是这样写的:上面写错了,
    Select
    AVG(a) as a,   
    AVG(b) as b
    from tt
    GROUP BY [name]
    having AVG(a)>0 and AVG(a)<3 and AVG(b)<3 and AVG(b)>1
      

  2.   


    select AVG(a) as a,   
    AVG(b) as b from 
    (Select
    AVG(a) as a,   
    AVG(b) as b
    from tt
    GROUP BY [name]
    having AVG(a)>0 and AVG(a)<3 and AVG(b)<3 and AVG(b)>1) a嵌套下不就行了么?
      

  3.   

    --#1.
    select avg(a) as a, avg(b) as b
    from
    (
    Select
    AVG(a) as a,  
    AVG(b) as b
    from tt
    having AVG(a)>0 and AVG(a)<3 and AVG(b)<3 and AVG(b)>1
    ) T--#2.
    select 
    a, 
    b,
    Alla = avg(a) over(),
    Allb = avg(b) over()
    from 
    (
    Select
    AVG(a) as a,  
    AVG(b) as b
    from tt
    having AVG(a)>0 and AVG(a)<3 and AVG(b)<3 and AVG(b)>1
    ) t