一天一道Sql题(day01)

获取每个部门中薪水最高的员工相关信息_牛客题霸_牛客网

思路:先将员工表和薪水表关联,根据部门分组升序排序后获取每个部门薪水的最大值。查询出部门id和每个部门最大薪水作为mytable1。

再将员工表和薪水表关联,获得mytable2。将mytable1和mytable2根据部门id和最大薪水作为条件进行左连接,左连接目的是筛去mytable2中多余的数据,最后展示部门id、员工id和最大薪水即可。

如果最大薪水有相同的,会一并将薪水相同的员工查出来。

sql:

复制代码
select mytable2.dept_no,mytable2.emp_no,mytable2.salary from 
( select dept_no,max(salary) sal from dept_emp d, salaries s 
where d.emp_no = s.emp_no and d.to_date = s.to_date and d.to_date = '9999-01-01'
group by dept_no
order by dept_no ) mytable left join
(select d.emp_no,d.dept_no,s.salary from dept_emp d, salaries s 
where d.emp_no = s.emp_no and d.to_date = s.to_date and d.to_date = '9999-01-01') mytable2
on mytable.dept_no=mytable2.dept_no and mytable.sal=mytable2.salary

如果思路或sql有误可在评论区提出~~

相关推荐
AI人工智能+电脑小能手8 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz8 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰11 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst11 小时前
数据库知识点
数据库
雪的季节11 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s12 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)13 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick199313 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&13 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
JohnYan13 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql