Я пытаюсь использовать новые оконные функции SQLite в приведенном ниже запросе с использованием Python API БД sqlite3 .
Я собираюсь вычислить стандарт отклонения для каждого окна, однако это не реализовано в стандартном SQLite. Следовательно, мне нужно зарегистрировать пользовательскую функцию. К сожалению, агрегатные функции - которые я могу зарегистрировать в sqlite3
, используя create_aggregate()
- не работают для windows. Хотя SQLite предоставляет аналоговую функцию sqlite3_create_window_function () , sqlite3
, похоже, не поддерживает ее.
Мой вопрос: как я могу зарегистрировать определяемую пользователем оконную функцию в Python (желательно с использованием sqlite3
, но с желанием изучить другие пакеты)?
SELECT
fund,
date,
user_defined_function(ret_usd) OVER (
PARTITION BY fund
ORDER BY CAST(julianday(date) - julianday(date("1970-01-01")) AS INT) ASC
RANGE BETWEEN 364 PRECEDING AND CURRENT ROW
)
FROM fund_returns