【发布时间】:2016-09-15 16:39:46
【问题描述】:
好吧,我又一次在努力制定我的电影分级系统:(
我的表结构是
ID | UserID | Rating | TMDB | TYPE
-----------------------------------
1 34 6 432 2
-----------------------------------
2 34 9 432 3
-----------------------------------
3 44 9 468 2
感谢用户 Barmar,我能够计算出平均值
$sql = "SELECT AVG(rating) AS avg_rating FROM `tbl_rating` WHERE `tmdb`= :tmdb AND `type`= :type ";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':tmdb', $tmdb);
$stmt->bindParam(':type', $type);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$avg_rating = $row['avg_rating'];
现在我想列出血腥恐怖的前 5 名(类型 = 2)。我完全不知道如何解决这个问题:(我知道我可以在最后通过一个简单的 LIMIT 命令来限制结果,我认为 ORDER by AVG(rating) 是需要的?我需要删除 WHERE tmdb。我有不知道如何实现这一点,任何人都可以帮忙!
【问题讨论】:
-
如果我在列上使用 avg,它会将它们全部加起来,而不是我需要将它们加到 tmdb 组 ID 中?我希望这能引起人们的注意,因为我的大脑已经变成糊状了