我正在尝试编写一个从大表(> 1M行)返回移动平均值的查询。
该表有一个带日期的列,另一列带有数值。我需要过去10天,每个日期的10天移动平均线。
无论我尝试了什么,结果都非常缓慢(仅使用infinidb_vtable_mode = 0或2运行)。
是否有适当的“infinidb方式”来进行快速移动平均(或类似的窗函数)查询?
谢谢。
答案 0 :(得分: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
让我知道你得到的结果