在我的SQL Server 2008存储过程中,我有一个包含RecordID
,TotalMinutes
,ProcessID
的表变量。
Declare @tblSum table(RecordID int, TotalMinutes int, ProcessID int)
RecordID是我的主键,总分钟是总分钟数,我有不同的流程,但这些流程会在我的数据上重复多次。
以下是我的数据示例:
RecordID TotalMinutes ProcessID
--------------------------------------------
1 10 1
2 20 1
3 30 1
4 10 2
5 40 2
6 10 2
7 10 3
8 55 3
9 60 3
10 15 4
我的计划是通过合计或添加具有相同ProcessID的所有数据来返回数据,并将其放在带有FinalMinutes
列的新表变量上,如下表所示:
RecordID TotalMinutes ProcessID FinalMinutes
-----------------------------------------------------
1 10 1 60
2 20 1 60
3 30 1 60
4 10 2 80
5 60 2 80
6 10 2 80
7 10 3 125
8 55 3 125
9 60 3 125
10 15 4 15
我不能分组,因为它会将结果分成4行。我需要保留行数及其拥有的每个数据,我只需在新表变量上添加FinalMinutes
列。
答案 0 :(得分:2)
以下是使用SUM()Over()
窗口聚合函数
Select *,
FinalMinutes = sum(TotalMinutes)over(partition by ProcessID)
From yourtable