24

我无法理解这段代码的错误

ID      AccountID       Quantity
1          1               10           Sum = 10
2          1               5                = 10 + 5 = 15
3          1               2                = 10 + 5 + 2 = 17
4          2               7                = 7
5          2               3                = 7 + 3 = 10  

SELECT ID, AccountID, Quantity, 
       SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT, 
FROM tCariH
4

3 回答 3

34
于 2012-04-06T08:22:18.340 回答
11

如果您使用的是 SQL 2012,您应该尝试

SELECT  ID, 
        AccountID, 
        Quantity, 
        SUM(Quantity) OVER (PARTITION BY AccountID ORDER BY AccountID rows between unbounded preceding and current row ) AS TopBorcT, 
FROM tCariH

如果可用,最好按日期列排序。

于 2013-05-29T03:24:01.943 回答
8

查询将是这样的:

SELECT ID, AccountID, Quantity, 
       SUM(Quantity) OVER (PARTITION BY AccountID ) AS TopBorcT 

       FROM #Empl ORDER BY AccountID

像 group by 这样的作品进行分区。这里我们按 AccountID 分组,因此 sum 将对应于 AccountID。

第一种情况, AccountID = 1 ,然后 sum(quantity) = 10 + 5 + 2 => 17 & 对于 AccountID = 2,然后 sum(Quantity) = 7+3 => 10

所以结果看起来像附加的快照

于 2015-12-09T09:36:30.563 回答