我需要计算过去 12 个月内某个值的累计总和。到目前为止,我的累积计算正在运行,但从当月开始。
我需要过去 12 个月的总计,从从上个月开始。
目前,我正在使用OVER
SQL 子句,从当前行/月开始运行累积总计。
请参考下面我的代码示例:
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 来简化示例):
作为我的示例,计算从当前行开始,并在过去 12 个月内运行。
如果我们以二月行为例,我需要从2020年1月到2019年2月的累计和。
有什么建议我该怎么做?
Thanks,
看来你对窗口函数很了解。您只需调整窗框:
SUM(Amount) OVER (PARTITION BY ID
ORDER BY Date_Month
ROWS BETWEEN 12 PRECEDING AND 1 PRECEDING
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)