我正在尝试用用户给出的最佳评分来评价水果类型。
我有一个名为评级的Fruit表,仅用于提交具有以下信息的评级
Fruit_id int
From_ID int
Rating int
现在我正在尝试运行SQL命令,如下所示
select From_ID, AVG(Rating) AS Rating FROM Ratings Group BY `Fruit_ID` ORDER by Rating DESC
然而,如果我得到一个用户将一个水果评分为一个苹果5个,然后1000个用橙色评分为4的用户突然被认为更好。
我如何考虑投票数,以确保投票最多的是最佳投票。
答案 0 :(得分:2)
这个问题更多的是关于调整你的数学公式而不是其他任何东西。
听起来你要求的是受欢迎程度,而不是评级。一种简单的方法可能是将平均评级乘以投票数。怎么样(请原谅我,如果我的语法关闭,我现在远离SQL服务器):
select From_ID, AVG(Rating) * COUNT(Rating) AS Rating FROM Ratings Group BY
{Fruit_ID {1}}
请记住,这个公式将比1票5票的票数高1000票。
答案 1 :(得分:0)
为什么不选择投票数并将其显示给用户。所以是的,对于一个苹果来说,5投5票将是一个整体5但只有1票。这将为用户提供一种简单的方法来查看给定评级的“受欢迎程度”。
如果我没有弄错的话,这就是今天大多数五星评级系统在网上工作的方式。
祝你好运!尼克