Mysql 无分组依据的聚合查询中出现错误1140(42000),表达式1
我的问题来自 以下是输入数据: 问题要求查找最大收入月数*工资和具有最大收入的行的总数 我的尝试是:Mysql 无分组依据的聚合查询中出现错误1140(42000),表达式1,mysql,sql,Mysql,Sql,我的问题来自 以下是输入数据: 问题要求查找最大收入月数*工资和具有最大收入的行的总数 我的尝试是: select distinct salary*months, count(*) from employee where salary*months = (select max(salary*months) from employee) 这给了我一条错误消息: 第6行出现错误114042000:在没有分组依据的聚合查询中,选择列表的表达式1包含未聚合列“run_byli4vf7yqz.emplo
select distinct salary*months, count(*)
from employee
where salary*months = (select max(salary*months) from employee)
这给了我一条错误消息:
第6行出现错误114042000:在没有分组依据的聚合查询中,选择列表的表达式1包含未聚合列“run_byli4vf7yqz.employee.salary”;这与sql\u mode=only\u full\u group\u by不兼容`
有什么建议说明我失败的原因吗?不要使用“选择不同”:
信息非常清楚。您有count*,因此您的查询是聚合查询。但是,您有一个未聚合的列,所以MySQL很困惑:您是否想要聚合?因此出现了错误
您也可以这样写:
select (e.salary * e.months), count(*)
from employee e
group by (e.salary * e.months)
order by (e.salary * e.months) desc
limit 1;
不要使用“选择不同项”:
信息非常清楚。您有count*,因此您的查询是聚合查询。但是,您有一个未聚合的列,所以MySQL很困惑:您是否想要聚合?因此出现了错误
您也可以这样写:
select (e.salary * e.months), count(*)
from employee e
group by (e.salary * e.months)
order by (e.salary * e.months) desc
limit 1;