Postgre'lerde üstel hareketli bir ortalama (EMA) uygulamaya çalışıyorum, ancak belgelere bakıp bunu düşündüğümde daha fazla kafa karıştırmaya çalışıyorum. EMA(x)
içinPostgre'lerde üstel hareketli ortalama nasıl hesaplanır?
formüldür:
EMA(x1) = x1 EMA(xn) = α * xn + (1 - α) * EMA(xn-1)
Burada yapılması gerektiğini tam olarak ne son hesaplanan elemanın sonucunu tutarak bir toplayıcı için mükemmel gibi görünüyor. Ancak bir toplayıcı tek bir sonuç üretir (küçülme ya da katlama gibi) ve burada sonuçların bir listesini (sütun olarak) (harita olarak) ihtiyacımız var. Prosedürlerin ve fonksiyonların nasıl çalıştığını kontrol ettim, fakat AFAIK bir sütun değil, tek bir çıktı ürettiler. Çok sayıda prosedür ve fonksiyon gördüm, ama bu, özellikle böyle bir şey yaparken, bir EMA yaparken, ilişkisel cebir ile nasıl etkileşime girdiğini anlayamıyorum.
Internets'i şu ana kadar aramakta şansım olmadı. Fakat bir EMA'nın tanımı oldukça basittir, umarım bu tanımı postgreslerde çalışan bir şeye çevirmek mümkündür ve basit ve etkilidir, çünkü NoSQL'e geçmek benim bağlamımda aşırı olacaktır.
Teşekkür ederiz.
PD: burada bir örnek görebilirsiniz:
sorgunun Bu tür özyinelemeli CTE ile çözülebilir https://docs.google.com/spreadsheet/ccc?key=0AvfclSzBscS6dDJCNWlrT3NYdDJxbkh3cGJ2S2V0cVE
Mesaj örnek tablo kaynağı beklenen bir sonuç: Eğer onlardan birine adıyla parametreleri başvuramaz rağmen, sadece bir sql fonksiyonu olabilir. Bu yardımcı olabilir. – danihp