2017-05-03 98 views
0

我有一个包含数据的表,我想用generategreser填充日期空白,但是我无法解决它。我怎样才能将我的表加入到generate_series结果中?我尝试如下:在PostgreSQL查询中使用generate_series

SELECT series AS time, 
     data 
FROM generate_series('2012-11-11', '2012-11-12', '2 minutes'::interval) AS series 
LEFT JOIN data_table ON data_table.time = series 

在此日期范围内的结果是:

   TIME    DATA 
     2012.11.11. 13:00:06 | data 1 
     2012.11.11. 13:08:06 | data 2 

我的目标会是这样的相似:

  TIME   DATA 
    2012.11.11. 13:00:06 | data 1 
    2012.11.11. 13:02:06 | NULL 
    2012.11.11. 13:06:06 | NULL 
    2012.11.11. 13:08:06 | data 2 
    2012.11.11. 13:10:06 | NULL 
    2012.11.11. 13:12:06 | NULL 
    ... 

人体工程学的全表填充时间间隔为2分钟。我怎样才能做到这一点?

回答

0

我认为你的查询应该工作。我会给一个列名的值:

SELECT g.series AS time, t.data 
FROM generate_series('2012-11-11', '2012-11-12', '2 minutes'::interval) AS g(series) LEFT JOIN 
     data_table t 
     ON t.time = g.series; 
+0

非常感谢!它工作得很好! – bummm26