gpt4 book ai didi

SQL Server - 过去 12 个月的累计总和,但从上个月开始 (SQL Server 18)

转载 作者:行者123 更新时间:2023-12-05 05:06:09 26 4
gpt4 key购买 nike

我需要计算过去 12 个月的某个值的累计总和。到目前为止,我的累积计算有效,但从当月开始。我需要过去 12 个月的总数,从上个月开始。目前,我在 SQL 上使用 OVER 子句,开始运行当前行/月的累计总数。

请引用下面我的代码示例:

SELECT  *,
SUM(Amount) OVER (PARTITION BY ID ORDER BY Date_Month ROWS BETWEEN 11 PRECEDING AND CURRENT ROW) AS TwelveMoTtl
FROM (
SELECT DISTINCT
CAST(DATEADD(MONTH, DATEDIFF(MONTH, 0, TransactionDt), 0) AS DATE) AS Date_Month,
ID,
SUM(Amount) AS Amount
FROM MyTable
WHERE TransactionDt >= '2019-01-01'
GROUP BY
ID,
CAST(DATEADD(MONTH, DATEDIFF(MONTH, 0, TransactionDt), 0) AS DATE)

这是我的结果(仅使用一个 ID 来简化示例):

enter image description here

作为我的示例,计算从当前行开始,并在过去 12 个月内运行。

如果我们以二月行为例,我需要从2020年1月到2019年2月的累计总和。

有什么建议吗?

谢谢,

最佳答案

您似乎很了解窗口函数。你只需要调整窗框:

SUM(Amount) OVER (PARTITION BY ID
ORDER BY Date_Month
ROWS BETWEEN 12 PRECEDING AND 1 PRECEDING
)

关于SQL Server - 过去 12 个月的累计总和,但从上个月开始 (SQL Server 18),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60101231/

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