在查询中Postgres generate_series和交叉表

时间:2017-10-17 01:31:18

标签: sql postgresql timestamp crosstab generate-series

我需要时间序列数据,但在表格上没有数据点的情况下合并generate_series。另外,crosstab可以转动记录。

我需要generate_series所需的时间范围:

SELECT generate_series('2015-01-01 00:00'::timestamp,'2015-03-31 23:00'::timestamp,interval '1 hour')::timestamp

我需要帮助将generate_seriescrosstab添加到以下查询中:

SELECT   
    timestamp as timestamp_utc,
    id as auth_id,
    coalesce(value, 0) as market_price

FROM table1 t1

WHERE timestamp between '2015-01-01 00:00:00' and '2015-03-31 23:55:00'
    AND id in (42,54,38,51)

问题: timestamp_utc中的某些数据点丢失,我想识别那些使用generate_series的数据点。最后crosstab列枢轴中AND t3.id in (42,54,38,51)的值。

示例结果应如下所示:

timestamp_utc      | 42    |54    |38    |51    |
-------------------|-------|------|------|------|
2015-01-01 01:00:00| 252.45| 0    | 1231 | 141.2|
2015-01-01 02:00:00| 0     | 112.3| 0    | 245.1|
2015-01-01 03:00:00| 0     | 234.1| 0    | 143.6|

感谢您的帮助

0 个答案:

没有答案