1
我想從記錄的事件表中轉換數據。我正在將數據轉換爲一致的「每日半小時視圖」。例如48個半週期(當沒有匹配的事件時用零填充半小時),我已經完成了這一部分成功。將sql桶值postgres生成時間序列
SELECT t1.generate_series,
v1.begin_time,
v1.end_time,
v1.volume
FROM tbl_my_values v1
RIGHT JOIN (SELECT generate_series.generate_series
FROM generate_series((to_char(now(), 'YYYY-MM-dd'::text) || ' 22:00'::text)::timestamp without time zone,
(to_char(now() + '1 day'::interval, 'YYYY-MM-dd'::text) || ' 22:00'::text)::timestamp without time zone, '00:30:00'::interval)
generate_series(generate_series)) t1 ON t1.generate_series = v1.begin_time
order by 1 ;
這提供了以下的結果:
2015-12-19 22:00:00 | 2015-12-19 22:00:00+00 | 2015-12-19 23:00:00+00 | 172.10
2015-12-19 22:30:00 | | |
2015-12-19 23:00:00 | 2015-12-19 23:00:00+00 | 2015-12-20 00:00:00+00 | 243.60
2015-12-20 00:30:00 | | |
2015-12-20 01:00:00 | | |
但是基於該「開始」和「結束」列中的視圖應該是:
2015-12-19 22:00:00 | 2015-12-19 22:00:00+00 | 2015-12-19 23:00:00+00 | 172.10
2015-12-19 22:30:00 | | | 172.10
2015-12-19 23:00:00 | 2015-12-19 23:00:00+00 | 2015-12-20 00:00:00+00 | 243.60
2015-12-20 00:30:00 | | | 243.60
2015-12-20 01:00:00 | | |
因爲在此所述的值例如跨度2半小時,例如有效期爲一小時。 所有幫助非常歡迎。謝謝
這很好,非常感謝您的幫助。 – user636322
其實只是通過結果來處理之間的重複行,例如,創建2 * 23點以上的行,因爲它是我設定的開始和結束時間上的匹配。 – user636322
因此,查詢正確分段值,但生成重複行。 – user636322