首页 > 解决方案 > SQL Server 2014 总和基于以前的记录

问题描述

我有以下 3 列。Col3 第一个值始终为 0。之后的值始终是前一条记录的 col2 + col3 的总和。

col1  col2   col3
1     6.48   0
2     1.95
3     1.66
4     .84
5     .56
6     1.24

所以最终的值如下:

col1  col2     col3
   1     6.48    0
   2     1.95    6.48
   3     1.66    8.43
   4     .84    10.09
   5     .56    10.93
   6     1.24   11.49

有谁知道这是否可以在 SQL Server 中没有游标的情况下完成?

标签: sql-servertsqlsql-server-2014

解决方案


您可以使用加窗SUM并减去当前值:

SELECT *, SUM(col2) OVER(ORDER BY col1)-col2 AS col3
FROM tab;

db<>小提琴演示


推荐阅读