要为数据集中的所有行显示的1列的总和

时间:2015-06-11 16:33:33

标签: sql sql-server-2008 tsql

我有一个案例,我将多个数据集插入临时表。最后,我想在临时表的所有行中显示这些多个数据集的总行数。例如:

cnt1   name    age
300    peter   21
200    piper   22

期望的结果集:

cnt1   name    age
500    peter   21
500    piper   22

这是我在很长的存储过程结束时寻找的结果。我无法弄清楚如何在单个列上添加并显示所有行的总和。

3 个答案:

答案 0 :(得分:2)

使用窗口功能:

select sum(cnt1) over() as cnt1, name, age
from TableName

修改

select (select sum(distinct cnt1) from TableName) as cnt1, name, age
from TableName

答案 1 :(得分:0)

尝试此操作(如果需要,可以使用union all将其附加到之前的结果中)。

Select sum(Cnt1) over () as Cnt1, name, age
from MyTable

我的回答最初使用over (partition by 1),但我发现这是不必要的。

答案 2 :(得分:0)

与返回总计的子查询交叉连接:

select gt cnt1, name, age
from mytable
cross join (select sum(cnt1) gt from mytable) x