gpt4 book ai didi

SQL Server 反向运行总计

转载 作者:行者123 更新时间:2023-12-03 02:01:17 25 4
gpt4 key购买 nike

我有这张表:

id  ID  Date    Cumulative
1 x Jan-10 10
3 x Feb-10 40
7 x Apr-10 60
9 x May-10 100
2 y Jan-10 20
6 y Mar-10 40
8 y Apr-10 60
10 y May-10 100

我需要将 MS SQL Server 查询中的“累积”反转为如下

id  ID  Date    Cumulative  Reversed
1 x Jan-10 10 10
3 x Feb-10 40 30
7 x Apr-10 60 20
9 x May-10 100 40
2 y Jan-10 20 20
6 y Mar-10 40 20
8 y Apr-10 60 20
10 y May-10 100 40

注意:查询适用于 SQL Server 2012

最佳答案

您可以使用lag获取上一行的值,并从当前行的值中减去以获得反转的值。

select t.*, cumulative - coalesce(lag(cumulative) over(partition by id order by date),0) as reversed
from tablename t

根据 @Gordon Linoff 的评论..您可以使用 lag(cumulative,1,0) 而不是 coalesce

select t.*, cumulative-lag(cumulative,1,0) over(partition by id order by date) as reversed
from tablename t

关于SQL Server 反向运行总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37058818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com