繁体   English   中英

Postgres SQL:ID的总和大于一天,在一系列序列中逐日计算

[英]Postgres SQL: Sum of ids greater than a day, computed day by day over a series

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

**我需要计算大于连续每个日期的总和。 关于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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM