mysql - 我必须从表中找到平均工资最高的部门名称
问题描述
这是我正在编写并收到错误的代码
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 不兼容
解决方案
一种方法是按平均工资排序并仅使用limit
子句获取第一行:
SELECT dep_name, AVG(salary)
FROM salary
GROUP BY dep_name
ORDER BY 2 DESC
LIMIT 1
推荐阅读
- java - CGLIB 如何代理 String 或其他 final 类?
- javascript - 如何将文件下载到本地机器而不是量角器中的网格节点
- .net - MSBuild DeployOnBuild=true 忽略 C# WCF 服务到文件共享
- javascript - 为什么 x 在下面的程序中没有被删除?
- python - Pandas:从 s3 访问文件的最有效方式
- ios - 如何将 .txt 文件的一部分加载到 textview 上以消除滞后现象
- spring-boot - 无法为功能区和 hyxtrix 设置超时
- html - 在 Bootstrap 4 中,“.navbar-toggler”按钮不会向右浮动
- java - 硬件和 AVD 模拟器之间的分辨率差异
- blogger - 如何在 Blogger 中为博客的不同标签添加不同的会员代码?