将包含不同值的列聚合为一个

时间:2012-05-03 11:47:31

标签: sql sql-server tsql stored-procedures sql-function

我有一张这样的表:

    type          load             total
    -------------------------------------
Default           base             26.2
Default           peak             29.625
NonDefault        base             26
NonDefault        peak             29.4

我目前正在尝试按负载对总列Sum(total)和组进行求和,这样就需要聚合类型列。

大部分时间类型都是相同的(所有Default)因此我可以简单地将其添加到分组中,但有时它不是(如示例中所示)。我希望能够聚合此列,以便在显示两个类型(DefaultNonDefault)时,我希望聚合为所有列输出Default,这将允许我继续进行分组。

我意识到这可能是自定义功能的工作?或者有没有更好的想法如何浓缩这个专栏?

2 个答案:

答案 0 :(得分:2)

select min(type) as type,
       load,
       sum(total) as total
from T
group by load

SQL Fiddle

答案 1 :(得分:1)

select 
       sum(total), 
       min(type) 
from table 
group by load