SELECT 
(
(SUM(id) * SUM(LOG (EPS)) - COUNT(*) * SUM(id * LOG (EPS)))       / (SUM(id) * SUM(id) - COUNT(*) * SUM(id * id))
)  AS a,from test
上面的SQL语句频繁的用到了相同的聚合函数有没有方法对它进行改进啊

解决方案 »

  1.   

    有相同的就先用变量来赋值,来引用变量来计算
    declare @a int
    select @a=count(*) from test
    再用@a来参与计算
      

  2.   

    SELECT 
    (a*e-b*e)/(a*a-b*c) a
    from 
    (select sum(id) a,count(*) b,sum(id*id) c,sum(log(eps)) d,SUM(id * LOG (EPS)) e from test) A
    应该都差不多
      

  3.   

    但是要是在group by 语句中 @a就是最后一组数据的聚合值了啊