postgrePostgres SQL:大于一天的 id 总和,在序列中逐日计算



希望计算日期范围内每天的移动总和。 即希望对所有大于或等于日期的值求和,但逐行进行。我知道需要一个窗口函数,但需要一些实际函数的帮助。

**我需要计算大于连续每个日期的总和。2017-08-02通知 我不计算前一天的值

示例数据:

2017-08-1, 1
2017-08-2, 5
2017-08-3, 4
2017-08-4, 3
2017-08-5, 2

期望的结果:

2017-08-1, 15
2017-08-2, 14
2017-08-3, 9
2017-08-4, 5
2017-08-5, 2

这是我必须生成这些数据的内容。

SELECT DATE_TRUNC('day', created_at),
COUNT(*)
FROM table
GROUP BY 1
ORDER BY 1 DESC

只需使用累积总和:

SELECT DATE_TRUNC('day', created_at),
COUNT(*),
SUM(COUNT(*)) OVER (ORDER BY DATE_TRUNC('day', created_at) DESC) as sum_greater_than
FROM table
GROUP BY 1
ORDER BY 1 DESC;

最新更新