如何避免使用分组功能复制语句?

时间:2014-03-24 21:24:56

标签: sql group-by having-clause

我有一个t-sql查询,其中sum函数是重复的。 如何避免重复这些陈述?

select 
    Id,
    sum(Value)
from
    SomeTable
group by 
    Id
having
    sum(Value) > 1000

3 个答案:

答案 0 :(得分:1)

您需要从group by子句中删除sum(Value)。

答案 1 :(得分:1)

看起来不支持表别名。 我认为with应该有效:

with tmptable (id,sumv)
as
(select
    Id,
    sum(Value) as sumv
from
    SomeTable
group by 
    Id  
)
select
    id,
    sumv 
from
    tmptable
where
   sumv>1000

小提琴:

http://sqlfiddle.com/#!6/0d3f2/2

答案 2 :(得分:0)

您可以使用GROUP BY 1, 2分组(在本例中)第一列和第二列,从而避免GROUP BY子句中的重复。