Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 计算“加权”平均数_Php_Mysql_Laravel_Math - Fatal编程技术网

Php 计算“加权”平均数

Php 计算“加权”平均数,php,mysql,laravel,math,Php,Mysql,Laravel,Math,在我的数据库中,我有一个系列表: 用户可以对系列进行0.01到5.00的评分。评级登记如下: ratings_user_id | ratings_series_id | ratings_rating ----------------------------------------------------- 1 | 1 | 4.50 4 | 2 | 2.50 现在,为了计

在我的数据库中,我有一个系列表:

用户可以对系列进行0.01到5.00的评分。评级登记如下:

ratings_user_id  | ratings_series_id | ratings_rating
-----------------------------------------------------
1                | 1                 | 4.50
4                | 2                 | 2.50
现在,为了计算series表的series_avg_rating列,我正在使用以下查询:

从额定值系列id=1的额定值中选择平均额定值

这很有效。但主要的问题是,用户可以对该系列节目的评分为5分,而该节目将在最高评分节目中排名第一。这不是我想要的

我想找出一个办法,使它的评级更有意义,只有最好的才会有最高的注册评级


有人知道这样做的好方法吗?是否有检索加权平均数的基本公式或查询

那么你想让收视率较低的节目在排行榜中排名较低?但是一个5星级的1级节目会比一星级的1000级节目更糟糕吗?一定有个转折点。这没有一般规则,但我建议你考虑一下COUNTratings\u rating。@DirkScholten一个1000倍于一颗星的节目被评为糟糕透顶。这意味着它应该在排名中处于较低的位置。大多数做评级的地方只是隐藏某些东西的评级,直到它得到至少X的评级,而X需要微调到一个你有足够信心具有代表性的值。冷启动问题仍然是一个悬而未决的问题problem@Musa是的,我知道1000个一星级的收视率真的很糟糕,这就是为什么我选择了这样一个极端的例子。我的目的是要弄清楚,在什么情况下,一个5星级的评级应该高于多个更差的评级。试着弄清楚这一点,然后也许你可以决定一个很好的公式来计算这个。你也可以按星星排序评级,然后按用来计算星星的评级数排序。单一的5星级评级仍将很高,但毕竟5星级评级超过1名评级者。
ratings_user_id  | ratings_series_id | ratings_rating
-----------------------------------------------------
1                | 1                 | 4.50
4                | 2                 | 2.50