答案 0 :(得分:0)
SQL Server 2014支持SUM() OVER (PARTITION BY ... ORDER BY ...)
,它计算运行总和:
DECLARE @T TABLE (ID char(1), Value int);
INSERT INTO @T (ID, Value) VALUES
('A', 1),
('A', 1),
('B', 1),
('B', 1),
('B', 1),
('C', 1),
('C', 1);
SELECT
ID
,Value
,SUM(Value) OVER (PARTITION BY ID ORDER BY Value
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS RunningTotal
FROM @T
ORDER BY ID, RunningTotal;
<强>结果强>
+----+-------+--------------+
| ID | Value | RunningTotal |
+----+-------+--------------+
| A | 1 | 1 |
| A | 1 | 2 |
| B | 1 | 1 |
| B | 1 | 2 |
| B | 1 | 3 |
| C | 1 | 1 |
| C | 1 | 2 |
+----+-------+--------------+