PostgreSQL 13数据库
假设一个简化的表plans
如下所示,可以假设每个月至少有一行,有时同一天有多行:
| id
个|first_published_at
|
| - -|- -|
| 小行星12345678910| 2022年10月1日03时58分55.118秒|
| abcd 1234 efg型|2022年10月3日03时42分55秒118秒|
| 日本高速数据处理机|2022年10月3日17时34分55.118秒|
| ASLB 83 nfys 5标准|2022年9月12日08:17:55.118|
我的简化查询:
SELECT TO_CHAR(plans.first_published_at, 'YYYY-MM') AS publication_date, COUNT(*)
FROM plans
WHERE plans.first_published_at IS NOT NULL
GROUP BY TO_CHAR(plans.first_published_at, 'YYYY-MM');
这将得到以下结果:
| publication_date
| count
|
| - -|- -|
| 2022年至10月|三个|
| 2022年至2009年|一个|
但我需要的10月份的结果是4
。
对于每个月,计数应该是本月和所有前几个月的总和。我将感谢任何关于如何处理这一问题的见解。
1条答案
按热度按时间jslywgbw1#
我将使用您的查询作为CTE,并运行一个使用累积
sum
作为window function的选择。DB fiddle上的演示