mysql如何查询ROUND(AVG(`row`))等于
我有一个查询,它选择了一堆“项目”和客户对该项目的平均评分。看起来是这样的:mysql如何查询ROUND(AVG(`row`))等于,mysql,sql,aggregate-functions,Mysql,Sql,Aggregate Functions,我有一个查询,它选择了一堆“项目”和客户对该项目的平均评分。看起来是这样的: SELECT `items`.`itemid`, `items`.`name`, `items`.`address`, `items`.`suburb`, `items`.`latitude`, `items`.`longitude`, `reviews`.`comment`, Round(Avg(`reviews`.`r
SELECT `items`.`itemid`,
`items`.`name`,
`items`.`address`,
`items`.`suburb`,
`items`.`latitude`,
`items`.`longitude`,
`reviews`.`comment`,
Round(Avg(`reviews`.`rating`), 0) AS avg
FROM `items`
RIGHT JOIN `reviews`
ON `items`.`itemid` = `reviews`.`itemid`
GROUP BY `items`.`itemid`;
现在,这是可行的,我得到了关于一个项目及其平均评分的所有信息
我想要的是添加一个
WHERE avg ='3';
其中3是一个选定值,因此我可以搜索“平均评分为3的所有项目”等
其中avg='3'不起作用。我只是想知道有没有办法?使用PHP偶数。使用having子句从聚合函数中筛选结果
SELECT `items`.`itemid`,
`items`.`name`,
`items`.`address`,
`items`.`suburb`,
`items`.`latitude`,
`items`.`longitude`,
`reviews`.`comment`,
Round(Avg(`reviews`.`rating`), 0) AS avg
FROM `items`
RIGHT JOIN `reviews` using (`itemid`)
GROUP BY `reviews`.`itemid`
HAVING Round(Avg(`reviews`.`rating`), 0) = 3
演示使用这可能是正确的,但它返回“表单中缺少值!”这似乎是您提交的值的问题,我想问一个新问题,我通过添加“;”来修复它,最后,它在“HAVING Round(Avg(
reviews
rating),0)=3”时抛出语法错误,在分组后删除分号;也修改了join子句使avg=3就足够了,无需重新计算