我有一个5星评级系统在我身边,我想查看前3名评价最高,我使用下面的SQL查询:
SELECT Ranking, Total_value FROM <Table> ORDER BY Rating DESC LIMIT 3;
但它没有显示前三名,它显示数字最高的3,如果10人投了一票,20人投了另一票,20票的票数最高,但没有必要具有最高评级,那么我如何将总票数除以总票数?所以它显示了排名最高的3
希望有人可以帮助我吗?并理解我的问题:)
答案 0 :(得分:0)
您可以将Total_value
与Total_votes
分开:
SELECT
Ranking,
Total_votes,
Total_value,
(Total_value / Total_votes) as `Average`
FROM
Votes
ORDER BY
(Total_value / Total_votes) DESC
LIMIT 10
答案 1 :(得分:0)
您必须在数据库中创建一个名为average的列。并在每次人们评分时更新平均值。然后使用查询
SELECT Ranking,Total_value FROM ORDER BY average_value DESC LIMIT 3;