Скользящая средняя с 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

Дайте мне знать, какие результаты вы получите

Другие вопросы по тегам