移动平均InfiniDB

问题描述:

我想写一个查询,从大表(> 1M行)返回移动平均数。移动平均InfiniDB

该表格包含一个包含日期的列和另一个包含数值的列。我需要过去的10天,每天有10天的移动平均线。

无论我尝试的结果是痛苦缓慢(只运行与infinidb_vtable_mode = 0或2)。

是否有一个适当的“infinidb方式”来做快速移动平均(或类似的窗函数)查询?

谢谢。

InfiniDB 4.0,窗口化功能的支持,使用了最近10天的平均作为窗口函数,你可以得到移动平均线与下面的查询

SELECT date_column, 
     AVERAGE(numeric_column) OVER (PARTITION BY date_column RANGE INTERVAL 10 DAY PRECEDING) 
FROM table_name 

让我知道什么样的结果你

+0

我得到这个错误:“错误代码:122. IDB-9002:缺少窗口规范中的ORDER BY表达式。”此查询“SELECT VERSION()”给我5.1.39值 – kirugan 2014-05-22 08:43:41

+0

SELECT VERSION()为您提供MySQL版本 - 因为InfiniDB是MySQL存储引擎。 – 2014-07-10 14:36:14