postgreSQL 1分钟的平均值

时间:2018-06-06 16:29:35

标签: sql postgresql average

我需要从我的数据库(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

但它似乎停留在查询中。

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

1 个答案:

答案 0 :(得分:0)

我猜你想要:

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

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

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