![](/img/trans.png)
[英]MySQL SELECT statement to select N rows from products WHERE AVERAGE price is X
[英]SQL SELECT products WHERE 'average price per product' < value
我只想返回平均價格<7的prod_id。查看下面的示例,查詢應該只返回prod_id 1(平均價格= 5)
+---------+-------+
| 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 - 無效使用組功能
如果你使用你的查詢,你會得到一個錯誤說'錯誤代碼:1111。無效使用組功能',請嘗試此查詢
select id, avg(price) AS average from a group by id having avg(price)<7;
你不能在where子句中使用聚合函數,你需要使用HAVING :
SELECT prod_id, AVG(price)
FROM products
GROUP BY prod_id
HAVING AVG(price) <7;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.