2013-04-24 85 views
0

我想寫一個查詢,從大表(> 1M行)返回移動平均數。移動平均InfiniDB

該表格包含一個包含日期的列和另一個包含數值的列。我需要過去的10天,每天有10天的移動平均線。

無論我嘗試的結果是痛苦緩慢(只運行與infinidb_vtable_mode = 0或2)。

是否有一個適當的「infinidb方式」來做快速移動平均(或類似的窗函數)查詢?

謝謝。

回答

0

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