Id Num OrderIndex
A1 3 1
A2 2 2
A3 3 3
B1 1 4
B2 4 5
Id Num
A1 3
A2 5
A3 8
B1 9
B2 13
SELECT Id,
SUM(Num) OVER (ORDER BY OrderIndex ROWS UNBOUNDED PRECEDING) AS Num
FROM tbl
ORDER BY OrderIndex;
SELECT B.Id,
(SELECT SUM(A.Num) FROM tbl A WHERE A.OrderIndex <= B.OrderIndex) AS Num
FROM tbl B
ORDER BY B.OrderIndex;
依 OrderIndex 排序計算累計和,現代 SQL 使用 SUM() OVER (ORDER BY ...) 最簡潔高效;舊版資料庫用相關子查詢實現相同邏輯。