好的,希望我上一篇关于电影评级系统的帖子我正在尝试编程。感谢用户Asaph帮助我完成我的前五部电影。这是我的数据库布局:
ID | UserID | Rating | TMDB | TYPE
-----------------------------------
1 34 6 432 2
-----------------------------------
2 34 9 432 3
-----------------------------------
3 44 9 468 2
并使用这个sql我可以列出顶级gorey电影(类型2)
sql SELECT `tmdb`, AVG(rating) AS avg_rating
FROM `tbl_rating`
WHERE `type`= :type
GROUP BY `tmdb`
ORDER BY avg_rating DESC
LIMIT 5
现在我想知道有没有办法让我的电影结果更公平?
例如,movie123可能有5票,平均票数为7,电影456可能只有1票,但如果它高于7,则它将位于列表的顶部。我怎样才能让这更公平?也许以某种方式在组中进行最小数量的行?或任何其他方式?再一次任何帮助都是惊人的!
答案 0 :(得分:0)
好的我认为这就是我想要做的事情:)
$sql = 'SELECT `tmdb`, AVG(rate) AS avg_rating, COUNT(rate) AS min_count FROM `tbl_rating` WHERE `type`= :type GROUP BY `tmdb` HAVING min_count > 1 ORDER BY avg_rating DESC LIMIT 5';
如果有更好的方式随时让我知道,这似乎可以解决问题:)