Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取PostgreSQL中每一行在特定周期内的行数?_Sql_Postgresql_Cumulative Sum - Fatal编程技术网

如何获取PostgreSQL中每一行在特定周期内的行数?

如何获取PostgreSQL中每一行在特定周期内的行数?,sql,postgresql,cumulative-sum,Sql,Postgresql,Cumulative Sum,我在PostgreSQL中有一个表,我想得到每一行在每一行日期前30天内的行数(包括每一时刻该行的事件)。例如: Event. Date A. 2019-02-13 B. 2019-02-15 C. 2019-03-17 D. 2019-03-19 E. 2019-04-22 F.

我在PostgreSQL中有一个表,我想得到每一行在每一行日期前30天内的行数(包括每一时刻该行的事件)。例如:

Event.         Date

A.                 2019-02-13

B.                 2019-02-15

C.                 2019-03-17

D.                 2019-03-19

E.                 2019-04-22

F.                  2019-04-23

G.                 2019-04-30
预期产出:

Event.         Date.                 Events occurred in last month

A.                 2019-02-13.     1

B.                 2019-02-15.     2

C.                 2019-03-17.     1

D.                 2019-03-19.     2

E.                 2019-04-22.     1

F.                  2019-04-23.     2

G.                 2019-04-30.     3
例如,对于事件B,上个月有两个事件:B本身和A,因为它发生在2019-02-15不到30天的时间内。对于事件G,有三个事件,因为从上个月(2019-03-30)开始,有三个事件(G本身、E和F)

如何在PostgreSQL查询中实现这一点


关于将窗口函数与窗口子句一起使用:

select e.*,
       count(*) over (order by date range between interval '30 day' preceding and current row)
from events e;

在您的示例数据中,每个事件有一个条目。查看
计数
分组依据