4

この質問の時点で、月/年を 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)

それを達成するための最良の方法は何ですか?

ありがとう!

4

1 に答える 1