我有一种情况,即将多个数据集插入临时表中。最后,我希望在临时表的所有行中显示这些多个数据集的总行数。例如:要显示数据集中所有行的1列总和
cnt1 name age
300 peter 21
200 piper 22
所需的结果集:
cnt1 name age
500 peter 21
500 piper 22
这是我在一个很长的存储过程结束寻找的结果。我无法弄清楚如何在单个列上合计并在所有行中显示总和。
我有一种情况,即将多个数据集插入临时表中。最后,我希望在临时表的所有行中显示这些多个数据集的总行数。例如:要显示数据集中所有行的1列总和
cnt1 name age
300 peter 21
200 piper 22
所需的结果集:
cnt1 name age
500 peter 21
500 piper 22
这是我在一个很长的存储过程结束寻找的结果。我无法弄清楚如何在单个列上合计并在所有行中显示总和。
用窗函数:
select sum(cnt1) over() as cnt1, name, age
from TableName
编辑:
select (select sum(distinct cnt1) from TableName) as cnt1, name, age
from TableName
尝试此操作(如果需要,可以使用union all
将其追加到您之前的结果中)。
Select sum(Cnt1) over() as Cnt1, name, age
from MyTable
我的答案最初用于over (partition by 1)
,但我看到这是不必要的。
@Giorgi的反应是相似但更好。 :) – APH
我们如何确保它只添加不同的cnt1值?我认为我们不能用OVER子句添加DISTINCT。任何解决方法?但感谢您的答案。 – rvphx
@rvphx,参见编辑答案。 –
谢谢乔治。编辑工作就像一个魅力。非常感谢。 – rvphx