SQL SELECT产品其中'每个产品的平均价格'<值
问题描述:
我只想返回具有平均价格的prod_id's < 7.查看下面的示例,查询应只返回prod_id 1(平均价格= 5)SQL SELECT产品其中'每个产品的平均价格'<值
+---------+-------+
| prod_id | price |
+---------+-------+
| 1 | 3 |
| 1 | 4 |
| 1 | 8 |
| 2 | 12 |
| 2 | 14 |
+---------+-------|
所以理想的结果应该是:
+---------+-------+
| prod_id | avg_pr|
+---------+-------+
| 1 | 5 |
+---------+-------|
我尝试这样做:
SELECT prod_id, AVG(price)
FROM products
WHERE AVG(price) < 7
GROUP BY prod_id
它给我这个错误:#1111 - 无效使用组功能的
答
你不能在where子句中使用聚合函数,你需要使用HAVING为:
SELECT prod_id, AVG(price)
FROM products
GROUP BY prod_id
HAVING AVG(price) <7;
答
如果使用您的查询,您将收到错误说'错误代码:1111.无效使用组功能 ',请尝试此查询
select id, avg(price) AS average from a group by id having avg(price)<7;