按平均值筛选SQL

我有两个表产品和评论
每个产品都有几个评论链接由评论表中的外键product_id链接
此外,每个评论都有一个名为rating的字段,带有十进制值
我希望获得平均评分高于特定阈值的所有产品的名称
在某些方面

SELECT p.name
FROM products p
INNER JOIN reviews r ON p.id = r.product_id
WHERE avg(r.rating) > 3

MySQL不允许我在where子句中使用avg函数 .
我该怎么办?

回答(1)

2 years ago

用'有'

SELECT p.name, avg(r.rating) as average
FROM products p
INNER JOIN reviews r ON p.id = r.product_id
GROUP BY p.name
HAVING avg(r.rating) > 3