SQL Server SUM /组/窗口函数

时间:2015-09-30 19:06:15

标签: sql-server group-by sum window-functions

美好的一天, 我有一张表如下。

Before Adding New Column

我想要做的是添加一个新的列,将列表/汇总(无论如何可能)称为" New Net"通过CovID / PolicyNo / CovYear / Positive(Negative)值。

在下面的示例中,新列将如下所示。 简而言之,我们要做的是SumUp该组中的所有值,并且只将该总数放在该组的第一行中,并将所有其他值归零。任何帮助/指针将不胜感激。我尝试过SQL Server窗口函数,标准SUM / GROUP。

enter image description here

1 个答案:

答案 0 :(得分:1)

这应符合ypur的期望:

SELECT  PolicyNo ,
        CovID , 
        CovYear ,
        p ,
        net, 
        CASE WHEN ROW_NUMBER()OVER(PARTITION BY CovID, PolicyNo, CovYear, net ORDER BY PolicyNo) = 1 THEN net ELSE 0 END AS NewNet
FROM    dbo.test1;