それが理にかなっているように、私はいくつかの文脈を与えます。製品の顧客評価をテーブル(評価)にキャプチャしており、時間に基づいた評価の累積移動平均を返すことができるようにしたいと考えています。
基本的な例は、1日あたりの評価を取得することです。
02 FEB - Rating: 5 - Cum Avg: 5
03 FEB - Rating: 4 - Cum Avg: (5+4)/2 = 4.5
04 FEB - Rating: 1 - Cum Avg: (5+4+1)/3 = 3.3
05 FEB - Rating: 5 - Cum Avg: (5+4+1+5)/4 = 3.75
Etc...
ひどくスケーリングしないアプローチを考えようとしています。
私の現在のアイデアは、その製品の前の行に基づいて累積平均を計算する行が評価テーブルに挿入されたときにトリップする関数を使用することです。
したがって、フィールドは次のようになります。
TABLE: Rating
| RatingId | DateTime | ProdId | RatingVal | RatingCnt | CumAvg |
しかし、これはデータを保存するためのかなり危険な方法のようです。
これを達成するための(または任意の)方法は何でしょうか?ある種の「トリガー」を使用する場合、SQLAlchemyでそれをどのように実行しますか?
ありとあらゆるアドバイスに感謝します!