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

标签 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 | ?

最佳答案

你试过吗:

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

我错过了什么吗?

关于php - 我如何计算出平均评分并在我的 MySQL 表中添加一个新列来记录这个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16712531/

相关文章:

mysql - 我无法访问 mysql ERROR : 1045(28000)

mysql - Rails SQL 查询,将 id 数组传递给 sql WHERE ... IN 子句

mysql - SQL 仅选择列上具有最大值的行

c# - 如何创建一个临时sql表,并将名称作为参数传递?

sql - 如何摆脱 Postgres 查询中继承的 SELECT?

php - 检查 SQLite 数据库/表的最后更新时间 (PHP)

mysql - 用于错误使用存储过程的 SQLEXCEPTION 处理程序

php - 循环从按关系排序和摸索的整个表中选择一个不同的行

javascript - Dropzone.js 和 symfony formbuilder

PHP 'beating' javascript 函数调用?