比如有四个字段A   B   C    D
如何求得该行四个字段之间的方差?
stdev貌似针对某一行数值进行计算:(

解决方案 »

  1.   

    ?  莫非我的提问方式不对?比如表 t  的字段t.a  t.b t.c t.d  t.e现在需要得到t.e,  每行t.e 都是前面四个字段的方差
      

  2.   


    create table TB
    (
    a float,
    b float,
    c float,
    d float
    )insert into TB
    select 1,2,3,4 union all
    select 3,4,5,6 union all
    select 1,3,5,7 union all
    select 1.2,1.4,2.2,3.5select *,(power(a-[avg],2)+power(b-[avg],2)+power(c-[avg],2)+power(d-[avg],2))/4 from 
    (select *,cast((a+b+c+d) as float)/4 as [avg] from TB) T
    a b c d avg (无列名)
    1 2 3 4 2.5 1.25
    3 4 5 6 4.5 1.25
    1 3 5 7 4 5
    1.2 1.4 2.2 3.5 2.075 0.816875
      

  3.   

    declare @t table(a int)
    insert @t select 2
    insert @t select 4
    insert @t select 6
    insert @t select 8select stdev(a) from @t
    /*
    ----------------------
    2.58198889747161(1 行受影响)
    */
    select var(a) from @t
    /*
    ----------------------
    6.66666666666667(1 行受影响)
    */行转列后查询。