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

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

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

  1. SELECT name, sum(amount)
  2. FROM salesperson
  3. JOIN orders
  4. ON salesperson.ID = orders.salesperson_id
  5. WHERE sum(amount) > 1300
  6. GROUP BY name;

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

rseugnpd

rseugnpd1#

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

  1. SELECT name, sum(amount)
  2. FROM salesperson
  3. JOIN orders
  4. ON salesperson.ID = orders.salesperson_id
  5. GROUP BY name
  6. Having sum(amount) > 1300;

相关问题