Postgresql 累计总和 最近 3 天

Posted

技术标签:

【中文标题】Postgresql 累计总和 最近 3 天【英文标题】:Postgresql cumulative sum Last 3 days 【发布时间】:2020-04-08 05:41:29 【问题描述】:

我有这些数据,我想计算一个滚动的 3 天总和,如下所示。

注意:必须考虑缺少date。所以不只是最后 3 行,而是 3 个太阳日。

我尝试了一个窗口功能,但它不起作用:

SELECT
    date,
    SUM(clicks) OVER (ORDER BY DATE ASC ROWS BETWEEN DATE - INTERVAL '3 day' AND date)
FROM table

【问题讨论】:

我使用的是 Postgres 11(我错误地添加了 P9.1 标签)。无论如何,我在本地主机上使用 Postgresq 进行了测试,但在“)”附近出现语法错误 您的描述说“必须考虑缺少的日期。所以不只是最后 3 行”。但是您的数据图片不包括任何缺失的日期。请发布示例数据 - 作为文本而不是图像 - 涵盖您的要求。 使用第一个答案中建议的“INTERVAL '3 day'”我会解决这个问题。 【参考方案1】:

上限应为current rowrange

SELECT
    date,
    SUM(clicks) OVER (ORDER BY DATE ASC range BETWEEN INTERVAL '3 day' PRECEDING AND CURRENT ROW)
FROM table

【讨论】:

当我尝试这个时,我得到错误:SQL 错误 [0A000]:错误:RANGE PRECEDING 仅支持 UNBOUNDED。似乎 POstgres 可能不支持这个? ***.com/questions/26791167/… @cmrichards 它是 postgres 语法。创建一个问题并再次 ping 我

以上是关于Postgresql 累计总和 最近 3 天的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Postgresql 中对总和进行排名?

MySql 累计总数按天分组在最大总数上

每个月中每个唯一ID的累计总和

在postgresql中查找每天每小时每一行的列数据总和

sql MySQL:运行总计(累计总和)

计算累计总和向前的大熊猫