2014-10-20 98 views
2

我有一个表格,其中包含毫秒时间序列列,我想对时间序列进行重新采样,并将平均值应用于组。我如何在Postgres中实现它?对时间序列数据重采样

“重新采样”是指在一秒或一分钟内汇总所有时间戳。一秒钟或一分钟内的所有行形成一个组。

表结构

date x y z 
+1

你说的重采样是什么意思?你如何定义一个组? – 2014-10-20 11:55:56

+0

请提供表格定义,测试数据和您尝试的查询(即使它不工作)。另外,你的Postgres版本。 – 2014-10-20 13:07:25

+0

什么是您的postgres版本? – 2014-10-20 13:08:48

回答

4

使用date_trunc()截断时间戳给定的时间单位,并GROUP BY那表情:

SELECT date_trunc('minute', date) AS date_truncated_to_minute 
     ,avg(x) AS avg_x 
     ,avg(y) AS avg_y 
     ,avg(z) AS avg_z 
FROM tbl 
GROUP BY 1; 

假设你引入歧途名为date列实际上timestamp类型是。

更多的细节和链接相关答案: