Скользящая средняя с InfiniDB
Я пытаюсь написать запрос, который возвращает скользящее среднее из большой таблицы (>1 млн строк).
В таблице есть столбец с датой и другой столбец с числовым значением. Мне нужны последние 10 дней с 10-дневной скользящей средней для каждой даты.
Все, что я пробовал, оказалось мучительно медленным (и работало только с infinidb_vtable_mode = 0 или 2).
Существует ли правильный "способ infinidb" для выполнения запросов по быстрому скользящему среднему (или аналогичной оконной функции)?
Спасибо.
1 ответ
В InfiniDB 4.0 поддерживаются функции управления окнами. Используя AVERAGE в качестве функции управления окнами, вы можете получить скользящее среднее за последние 10 дней с помощью следующего запроса.
SELECT date_column,
AVERAGE(numeric_column) OVER (PARTITION BY date_column RANGE INTERVAL 10 DAY PRECEDING)
FROM table_name
Дайте мне знать, какие результаты вы получите