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 row
和range
:
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 天的主要内容,如果未能解决你的问题,请参考以下文章