一天一道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有误可在评论区提出~~

相关推荐
邓工说电1 小时前
智慧断路器安全吗?数据加密、离线保护与合规认证全解读
大数据·数据库·人工智能·智能断路器·炜晔科技
adinnet20261 小时前
企业微调大模型(Fine-tuning):先吃透 RAG 还是先训自己的模型
大数据·数据库
上位机妹子2 小时前
EF Core 两种继承映射:每层次一张表(TPH)与每类型一张表(TPT)
数据库·c#·.netcore·ef core
小马同学-2 小时前
Redis消息队列与客户端编程
数据库·redis
for_ever_love__2 小时前
MySQL 高频面试题 30 问:索引、事务、锁、日志、主从与分库分表(MySQL 8.0 版)
java·数据库·spring boot·mysql·spring cloud·面试·总结
染指11103 小时前
140.Agent-多Agent框架-Agent执行Skills流程
数据库·人工智能·设计模式·langchain·agents
fengkai45453 小时前
十二、Redis -2
运维·数据库·redis·容器
余槐i3 小时前
200万行表加索引锁死写入:PostgreSQL CONCURRENTLY 的三类等待与重建路径
数据库·postgresql·性能优化·索引·explain