【问题标题】:postgreSQL 1 minute average of valuespostgreSQL 1 分钟平均值
【发布时间】:2018-06-06 16:29:35
【问题描述】:

我需要从我的数据库 (postgreSQL) 中查询 1 分钟的平均值。

数据库以毫秒为单位记录,如下所示:

timestamp | value
------------------
1528029265001 | 123
1528029265020 | 232
1528029265025 | 332
1528029265029 | 511
...           | ...
1528029265176 | 231

我试过了:

SELECT   
      avg(value), 
      extract(minutes FROM to_timestamp(timestamp/1000)) as one_min
FROM table GROUP BY one_min

但它似乎卡在查询中。

我确信有一种超级简单的方法可以做到这一点。 有什么建议吗?

【问题讨论】:

  • “卡在查询中”是什么意思?
  • 它永远在加载..

标签: sql postgresql average


【解决方案1】:

我猜你想要:

SELECT floor(timestamp/(60 * 1000)) as timestamp_minute
       avg(value)
FROM table
GROUP BY timestamp_minute;

但是,如果您的问题是性能问题,这将具有相同的性能问题。为此,您需要一个 where 子句来限制正在处理的数据量。

由于不是以均匀的间隔收集数据,您可能需要第一个和最后一个值的简单平均值,或类似的东西。

【讨论】:

  • 地板制作一分钟间隔器怎么样?
  • @DanielBaeriswyl 。 . .当划分正确时它会这样做。
猜你喜欢
  • 2017-04-15
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
  • 1970-01-01
相关资源
最近更新 更多