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

时间:2016-11-20 22:47:37

标签: mysql sql select group-by

我想只返回平均价格

+---------+-------+
| 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 - 无效使用群组功能

2 个答案:

答案 0 :(得分:5)

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

select id, avg(price) AS average from a group by id having avg(price)<7;

答案 1 :(得分:3)

你不能在where子句中使用聚合函数,你需要使用HAVING

function getCheckboxes(){
    var ammount = parseInt(document.getElementById("checkBoxesAmmount"));
    var checkbox;
    for(var i = 0; i<ammount; i++){
        checkbox = document.getElementById("checkbox"+i);
        //do staff
    }
    return;