我会给出一些背景信息,以便更好地理解。我正在一个表格(评分)中捕获产品的客户评分,并希望能够返回基于时间的评分的累积移动平均值。
以下是一个基本示例,每天都有一个评分:
以下是一个基本示例,每天都有一个评分:
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中如何操作?
非常感谢您的任何建议!