MySQL分级系统-查找分级
我试图根据用户给出的最佳评分对水果类型进行评分 我有一个名为Ratings的水果表,用于提交包含以下信息的评分MySQL分级系统-查找分级,sql,mysql,rating,Sql,Mysql,Rating,我试图根据用户给出的最佳评分对水果类型进行评分 我有一个名为Ratings的水果表,用于提交包含以下信息的评分 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 然而,如果我有1个用户给一个水果打分,苹果为5分,然后有1000个用户给一个橘子打分,苹
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
然而,如果我有1个用户给一个水果打分,苹果为5分,然后有1000个用户给一个橘子打分,苹果为4分,那么苹果突然被认为更好了
我如何考虑投票数,以确保得票最多的人和得票最好的人排在第一位。这个问题更多的是关于调整你的数学公式,而不是其他问题 听起来你想要的是人气,而不是评级。一个简单的方法是将平均评分乘以投票数。这是怎么回事(请原谅,如果我的语法不正确,我现在不使用SQL server):
从ID中选择,平均值(评级)*从评级组中计数(评级)作为评级依据
Fruit\u IDORDER BY Rating DESC
请记住,此公式的投票率为1000票1,远远高于1票5。为什么不选择投票数并向用户显示。所以,是的,一个苹果投5票等于5票,但只有1票。这将为用户提供一种简单的方式来查看给定评级的“受欢迎程度” 如果我没有弄错的话,这就是今天大多数fivestar评级系统在网上的工作方式 祝你好运
尼克你可以用。。。选择From_ID,SUM(Rating)AS Rating From Ratings GROUP BY Fruit IDORDER BY Rating DESC…AS AVERAGE*COUNT=SUM。这里的问题不是显示数据,而是试图通过一次投票将排名靠前的水果排在第一位