この質問の時点で、月/年を time_bucket 関数に追加するオープン機能リクエストがあることを知っています。
私の質問は、今これを達成するための最良の方法は何ですか. この問題は言及していますdate_trunc
2 つのアプローチを次に示します。
timescaledb の time_bucket
SELECT time_bucket('1 week', timestamp) AS "one_week",
count(*) AS "count",
first(value, timestamp) AS "first",
last(value, timestamp) AS "last"
FROM "event" "event"
WHERE event."signalId" = $1
GROUP BY one_week
ORDER BY one_week DESC
postgres date_trunc
SELECT date_trunc('month', timestamp) AS "one_month",
count(*) AS "count",
first(value, timestamp) AS "first",
last(value, timestamp) AS "last"
FROM "event" "event"
WHERE event."signalId" = $1
GROUP BY one_month
ORDER BY one_month DESC
どちらも期待どおりに動作します (ただし、パフォーマンス テストは行っていません)。
私は達成したいと思います:
- (a) ギャップフィル (timescaledb time_bucket_gapfill など)
- (b) 繰り越された最後の値 (locf)
それを達成するための最良の方法は何ですか?
ありがとう!