Mysql 选择平均评级介于
我有两张桌子: 表biz和表biz_评级 生意 商务id int 名称varchar 商业评级 商业评级id int 商务id int 评级整数 我想要一个查询来选择平均评级在1-2或3-4之间的所有业务行,或者<5或>5评级是一个从0到5的数字 我真的不知道如何开始 我现在有这样的东西:Mysql 选择平均评级介于,mysql,sql,average,Mysql,Sql,Average,我有两张桌子: 表biz和表biz_评级 生意 商务id int 名称varchar 商业评级 商业评级id int 商务id int 评级整数 我想要一个查询来选择平均评级在1-2或3-4之间的所有业务行,或者5评级是一个从0到5的数字 我真的不知道如何开始 我现在有这样的东西: SELECT biz_id FROM biz WHERE biz_id IN (SELECT biz_id FROM biz_rating WHERE AVG(rating) BETW
SELECT
biz_id
FROM
biz
WHERE
biz_id IN
(SELECT biz_id FROM biz_rating WHERE AVG(rating) BETWEEN 0 AND 5)
ORDER BY
biz_id ASC
但这根本不起作用。只需使用聚合即可。您甚至不需要加入:
select br.biz_id
from biz_rating br
group by br.biz_id
having avg(rating) between 1 and 2; -- or whatever limits you want
如果需要名称和id,可以加入表
select biz_id,name,b2.avgrating
from BIZ as B1,
( select biz_id as bid, avg(rating) as avgrating
from biz_rating
group by biz_id
having avg(rating) between 0 and 5) as B2
where B1.biz_id=B2.bid
如果您想添加分组依据并在子选择中从何处切换到何处,这也将选择平均评分。