gpt4 book ai didi

postgresql - 如何使用timescaleDB按月计时

转载 作者:行者123 更新时间:2023-12-04 13:41:03 25 4
gpt4 key购买 nike

对于这个问题,我知道有一个 open feature request将月/年添加到 time_bucket 函数。

我的问题是,现在完成此任务的最佳方法是什么。本期提到 date_trunc
以下是两种方法:

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)

  • 实现这一目标的最佳方法是什么?

    谢谢!

    最佳答案

    看起来他们计划在 future 支持这个,但它没有包含在任何里程碑的计划中,检查
    https://github.com/timescale/timescaledb/issues/414
    现在,我使用 time_bucket('1 day', timestamp) 做一个解决方法或将其作为 CTE 的一部分/with ,从中我将调用 date_trunc('month', time_bucketed_day_column) .这样,timescaledb 的gapfill 函数从较小的interfal(day)应该在较长的时间间隔上进行。

    关于postgresql - 如何使用timescaleDB按月计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57040614/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com