Я пытаюсь реализовать экспоненциальную скользящую среднюю (EMA) в postgres, но когда я проверяю документацию и думаю об этом, тем больше я стараюсь больше смутить.
Формула для EMA(x)
:
EMA(x1) = x1 EMA(xn) = α * xn + (1 - α) * EMA(xn-1)
Кажется, что он идеально подходит для агрегатора, поэтому результат последнего расчетного элемента - именно то, что нужно сделать здесь. Однако агрегатор производит один единственный результат (как сокращение или сгиб), и здесь нам нужен список (столбец) результатов (как карта). Я проверяю, как работают процедуры и функции, но AFAIK производит один вывод, а не столбец. Я видел множество процедур и функций, но я не могу понять, как это взаимодействует с реляционной алгеброй, особенно при выполнении чего-то вроде этого, EMA.
Мне до сих пор не повезло в Интернетах. Но определение для EMA довольно простое, я надеюсь, что можно перевести это определение в нечто, что работает в postgres и является простым и эффективным, потому что переход на NoSQL в моем контексте будет чрезмерным.
Спасибо.
PD: здесь вы можете увидеть пример:
https://docs.google.com/spreadsheet/ccc?key=0AvfclSzBscS6dDJCNWlrT3NYdDJxbkh3cGJ2S2V0cVE