第1行出现错误1111(HY000):组函数的使用无效


SELECT COUNT(*) FROM EMPLOYEE WHERE (SALARY*MONTHS)=MAX(SALARY*MONTHS)

我正在努力获得最高(工资*月(的员工人数。为什么我在没有分组的情况下也会出现这个错误?是我应该拥有的吗?

您收到此错误是因为MAX()是一个聚合函数,所以MySQL通常需要GROUP BY

对于此逻辑,您可以使用子查询:

SELECT COUNT(*)
FROM EMPLOYEE e
WHERE (e2.SALARY * e2.MONTHS) = (SELECT MAX(e2.SALARY* e2.MONTHS) FROM EMPLOYEE e2);

最新更新