SQL SELECT产品WHERE'每个产品的平均价格'<值

dea*_*020 2 mysql sql select group-by

我只想返回平均价格<7的prod_id.查看下面的示例,查询应该只返回prod_id 1(平均价格= 5)

+---------+-------+
| prod_id | price | 
+---------+-------+
| 1       | 3     |
| 1       | 4     |
| 1       | 8     |
| 2       | 12    |
| 2       | 14    |
+---------+-------| 
Run Code Online (Sandbox Code Playgroud)

所以期望的结果应该是:

+---------+-------+
| prod_id | avg_pr| 
+---------+-------+
| 1       | 5     |
+---------+-------| 
Run Code Online (Sandbox Code Playgroud)

我试过这个:

SELECT prod_id, AVG(price) 
FROM products
WHERE AVG(price) < 7
GROUP BY prod_id
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:#1111 - 无效使用组功能

小智 5

如果你使用你的查询,你会得到一个错误说'错误代码:1111.无效使用组功能',请尝试此查询

select id, avg(price) AS average from a group by id having avg(price)<7;
Run Code Online (Sandbox Code Playgroud)