首页 > 解决方案 > 我必须从表中找到平均工资最高的部门名称

问题描述

这是我正在编写并收到错误的代码

select Dep_name,T
from
(select Dep_name,avg(salary) as T
from salary
group by Dep_name) as TT
having max(T);

错误:第 4 行的错误 1140 (42000):在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #1 包含非聚合列“TT.Dep_name”;这与 sql_mode=only_full_group_by 不兼容

标签: mysqlsqlselecttop-n

解决方案


一种方法是按平均工资排序并仅使用limit子句获取第一行:

SELECT   dep_name, AVG(salary) 
FROM     salary 
GROUP BY dep_name 
ORDER BY 2 DESC
LIMIT    1

推荐阅读