小编The*_*ous的帖子

Postgres中有效的时间序列查询

我的PG数据库中有一个表,看起来有点像这样:

id | widget_id | for_date | score |
Run Code Online (Sandbox Code Playgroud)

每个引用的小部件都有很多这些项目.每个小部件每天总是1个,但是存在差距.

我想得到的结果是包含自X以来每个日期的所有小部件.日期通过生成系列引入:

 SELECT date.date::date
   FROM generate_series('2012-01-01'::timestamp with time zone,'now'::text::date::timestamp with time zone, '1 day') date(date)
 ORDER BY date.date DESC;
Run Code Online (Sandbox Code Playgroud)

如果没有给定widget_id的日期条目,我想使用前一个.所以说小工具1337在2012-05-10没有条目,但在2012-05-08,那么我希望结果集在2012-05-10也显示2012-05-08条目:

Actual data:
widget_id | for_date   | score
1312      | 2012-05-07 | 20
1337      | 2012-05-07 | 12
1337      | 2012-05-08 | 41
1337      | 2012-05-11 | 500

Desired output based on generate series:
widget_id | for_date   | score
1336      | 2012-05-07 | 20
1337      | 2012-05-07 | 12
1336      | 2012-05-08 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

8
推荐指数
2
解决办法
4408
查看次数

标签 统计

postgresql ×1

sql ×1