0

我正在尝试编写一个从大表(> 1M 行)返回移动平均值的查询。

该表有一列带有日期,另一列带有数值。我需要最后 10 天,每个日期的 10 天移动平均值。

无论我尝试什么结果都非常缓慢(并且仅在 infinidb_vtable_mode = 0 或 2 时运行)。

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

谢谢你。

4

1 回答 1

0

InfiniDB 4.0中,支持窗口函数,使用AVERAGE作为窗口函数,您可以通过以下查询获得过去 10 天的移动平均值

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

让我知道你得到了什么结果

于 2014-04-15T01:48:21.183 回答