gpt4 book ai didi

mysql - SQL 查询 - 如何获得评分最高的项目?

转载 作者:行者123 更新时间:2023-11-29 04:27:03 28 4
gpt4 key购买 nike

我有两个sql表:

item
id name price
1 name1 100
2 name2 100
3 name3 100
4 name4 100

rates
id item_id rating
1 1 5
2 4 4
3 2 5
4 2 3
5 3 1
...

我想显示平均评分最高的 3 个项目。我应该怎么做?

我得到这样的平均项目评分:

$item =  mysql_query("SELECT * FROM item");
while($row = mysql_fetch_assoc($item)) {
$id = $row['id'];
$rate= mysql_query("SELECT AVG(rating) FROM rates WHERE id= $id");
}

最佳答案

您可以计算派生表中的最高平均值并连接到该表:

select i.id, i.name, i.price
from item i
join (
select id, avg(rating) as ar
from rates
group by id
order by ar desc, id
limit 3
) dt on i.id = dt.id;

我将 id 添加到 ORDER BY 以在您有重复项的情况下强制获得一致的结果。

关于mysql - SQL 查询 - 如何获得评分最高的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9423748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com