我如何计算平均评级并在我的MySQL表中添加一个新列来记录这一点

时间:2013-05-23 11:18:34

标签: php mysql sql average rating

我有一个产品ID的MySQL表,其中的列显示了这些产品每次从我的客户那里获得1,2,3,4或5星评级的次数。我想插入平均评级栏,该列目前是空白的,是一个数字,表示每种产品的平均评分。

如何计算每个产品ID的平均评分,然后修改表格以将此平均评分插入平均评分栏?然后,我希望每天使用php脚本和cron作业运行此SQL语句,以重新计算平均评级并更新此表,因为每个产品都会记录更多评级。

表格布局的一个例子如下:

Product ID | 1 | 2 | 3 | 4 | 5 | Average Rating

1294518    | 0 | 3 | 3 | 2 | 4 | ?

9226582    | 0 | 0 | 1 | 0 | 0 | ?

3946583    | 0 | 3 | 6 | 1 | 0 | ?

7392588    | 1 | 0 | 0 | 0 | 0 | ?

1196585    | 0 | 1 | 0 | 5 | 6 | ?

4285385    | 0 | 2 | 3 | 3 | 1 | ?

1 个答案:

答案 0 :(得分:3)

你试过了吗?

UPDATE table
SET aveRate = (rate1 + rate2*2  + rate3*3  + rate4*4 + rate5*5) /
                           (rate1 + rate2 + rate3 + rate4 + rate5)

我错过了什么吗?