where子句和groupby子句出现mysql错误

7dl7o3gd  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(329)

在此处输入图像描述
我正在尝试编写一个查询,从上面的表中检索订单金额超过1300美元的所有销售人员的姓名(每个销售人员只有一个id。)
以下是我的尝试:

SELECT name, sum(amount)

FROM salesperson

JOIN orders

ON salesperson.ID = orders.salesperson_id

WHERE sum(amount) > 1300 

GROUP BY name;

但是,它会显示错误:error 1111(hy000):组函数的使用无效。
当我删除where子句时,它工作正常并返回以下内容:
在此处输入图像描述
这和我想要的非常相似,只是没有小于1300的过滤器。
where子句我做错了什么?如何解决?

rseugnpd

rseugnpd1#

聚合不能出现在 WHERE 子句,但您可以使用 HAVING 按以下方式:

SELECT name, sum(amount)

FROM salesperson

JOIN orders

ON salesperson.ID = orders.salesperson_id

GROUP BY name

Having sum(amount) > 1300;

相关问题