首页 > 解决方案 > 计算“加权”平均值

问题描述

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

series_id    | series_name        | series_avg_rating
-----------------------------------------------------
1            | The 100            | null
2            | The walking dead   | null

用户可以“评价”系列(0.01 到 5.00)。评分是这样注册的:

ratings_user_id  | ratings_series_id | ratings_rating
-----------------------------------------------------
1                | 1                 | 4.50
4                | 2                 | 2.50

现在,为了计算series_avg_rating系列表的列,我目前正在使用以下查询:

SELECT AVG(ratings_rating) FROM ratings WHERE ratings_series_id = 1;

这行得通。但主要问题是,用户可以用 5 来给该系列评分,而该节目将在评分最高的节目中排名第一。这不是我想要的。

我想找到一种方法来使收视率更有意义,并且只有最好的才能获得最高的注册收视率。

有谁知道这样做的好方法?是否有检索“加权”平均值的基本公式或查询?

标签: phpmysqllaravelmath

解决方案


推荐阅读