【问题标题】:SQL Server 2014 sum based on previous record [duplicate]SQL Server 2014 总和基于以前的记录 [重复]
【发布时间】:2019-06-06 19:36:27
【问题描述】:

我有以下 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-server tsql sql-server-2014


    【解决方案1】:

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

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

    db<>fiddle demo

    【讨论】:

    • 完美!谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多