我会给出一些上下文,所以它是有道理的。我正在表格(评级)中捕获产品的客户评级,并希望能够返回基于时间的评级的累积移动平均值。
一个基本示例如下:每天进行评分:
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...
我正在尝试一种不会可怕地扩展的方法。
我目前的想法是有一个函数,当将一行插入到 Rating 表中时,该函数会根据该产品的前一行计算 Cum Avg
所以字段将类似于:
TABLE: Rating
| RatingId | DateTime | ProdId | RatingVal | RatingCnt | CumAvg |
但这似乎是一种相当狡猾的数据存储方式。
实现这一目标的(或任何)方法是什么?如果我要使用各种“触发器”,您将如何在 SQLAlchemy 中执行此操作?
任何和所有的建议表示赞赏!