随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣1077(MySQL)-项目员工Ⅲ(中等)

题目:

写 一个 SQL 查询语句,报告在每一个项目中经验最丰富的雇员是谁。如果出现经验年数相同的情况,请报告所有具有最大经验年数的员工。

查询结果格式在以下示例中:

 

 

 employee_id 为 1 和 3 的员工在 project_id 为 1 的项目中拥有最丰富的经验。在 project_id 为 2 的项目中,employee_id 为 1 的员工拥有最丰富的经验。

解题思路:

①先以project_id进行分组,再按experience_year进行降序排序。

1   select project_id,a.employee_id,name,experience_years,   dense_rank() over(partition by project_id order by   experience_years desc) as rnk
2   from project a
3   join employee b
4   on a.employee_id = b.employee_id

 ②选出rnk = 1的数据即可。

1 select project_id,employee_id
2 from (
3   select project_id,a.employee_id,name,experience_years,   dense_rank() over(partition by project_id order by   experience_years desc) as rnk
4   from project_1075 a
5   join employee_1075 b
6   on a.employee_id = b.employee_id
7 ) as temp
8 where rnk = 1;

posted on   我不想一直当菜鸟  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示