Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
MySQL分级系统-查找分级_Sql_Mysql_Rating - Fatal编程技术网

MySQL分级系统-查找分级

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个用户给一个橘子打分,苹

我试图根据用户给出的最佳评分对水果类型进行评分

我有一个名为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个用户给一个橘子打分,苹果为4分,那么苹果突然被认为更好了


我如何考虑投票数,以确保得票最多的人和得票最好的人排在第一位。

这个问题更多的是关于调整你的数学公式,而不是其他问题

听起来你想要的是人气,而不是评级。一个简单的方法是将平均评分乘以投票数。这是怎么回事(请原谅,如果我的语法不正确,我现在不使用SQL server):

从ID中选择,平均值(评级)*从评级组中计数(评级)作为评级依据
Fruit\u ID
ORDER 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。这里的问题不是显示数据,而是试图通过一次投票将排名靠前的水果排在第一位