我在 SQL SERVER 中有如下事务表。
UserID TranDate Amount
1 | 2015-04-01 | 0
1 | 2015-05-02 | 5000
1 | 2015-09-07 | 1000
1 | 2015-10-01 | -4000
1 | 2015-10-02 | -700
1 | 2015-10-03 | 252
1 | 2015-10-03 | 260
1 | 2015-10-04 | 1545
1 | 2015-10-05 | 1445
1 | 2015-10-06 | -2000
我想查询此表以获取任何特定日期的可用余额。所以我为此使用了窗口功能。
SELECT TransactionDate,
SUM(Amount) OVER (PARTITION BY UserId ORDER BY TransactionDate ROWS
BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM Transactions
但由于事务表在 2015-10-03 日期有重复条目,它在 2015-10-03 日期重复数据。每当有相同的日期时,我都会期待该日期的最后一条记录以及可用余额的总和。
电流输出
TransactionDate AvailableBalance
2015-04-01 | 0
2015-05-02 | 5000
2015-09-07 | 6000
2015-10-01 | 2000
2015-10-02 | 1300
2015-10-03 | 1552
2015-10-03 | 1804
2015-10-04 | 3349
2015-10-05 | 4794
2015-10-06 | 2794
预期:我想从上述结果集中删除以下记录。
2015-10-03 | 1552
这是我的 sql 小提琴