MySQL WHERE 子句和 GROUP BY 子句错误
MySQL error with WHERE clause and GROUP BY clause
enter image description here
我正在尝试编写一个查询,以检索上表中订单金额超过 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 子句时,它工作正常并且 returns 以下内容:
enter image description here
这与我想要的非常相似,只是没有针对小于 1300 的 sum(amount) 的过滤器。
where子句哪里做错了,我该如何解决?
Aggregate 不能出现在 WHERE
子句中,但您可以按以下方式使用 HAVING
:
SELECT name, sum(amount)
FROM salesperson
JOIN orders
ON salesperson.ID = orders.salesperson_id
GROUP BY name
Having sum(amount) > 1300;
enter image description here
我正在尝试编写一个查询,以检索上表中订单金额超过 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 子句时,它工作正常并且 returns 以下内容:
enter image description here
这与我想要的非常相似,只是没有针对小于 1300 的 sum(amount) 的过滤器。
where子句哪里做错了,我该如何解决?
Aggregate 不能出现在 WHERE
子句中,但您可以按以下方式使用 HAVING
:
SELECT name, sum(amount)
FROM salesperson
JOIN orders
ON salesperson.ID = orders.salesperson_id
GROUP BY name
Having sum(amount) > 1300;