首页 > 数据库 >力扣1077(MySQL)-项目员工Ⅲ(中等)

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

时间:2023-04-09 10:00:13浏览次数:49  
标签:rnk project 1077 experience years 力扣 MySQL employee id

题目:

写 一个 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;

标签:rnk,project,1077,experience,years,力扣,MySQL,employee,id
From: https://www.cnblogs.com/liu-myu/p/17299872.html

相关文章

  • 力扣1076(MySQL)-员工项目Ⅱ(简单)
    题目:编写一个SQL查询,报告所有雇员最多的项目。查询结果格式如下所示:  解题思路:方法一:将两个表联结,以project_id进行分组,统计员工数降序排序,然后筛选出第一条数据。1selectproject_id2fromprojecta3joinemployeeb4ona.employee_id=b.employee_id5group......
  • 力扣1075(MySQL)-项目员工Ⅰ(简单)
    题目:项目表 Project:  员工表 Employee:请写一个SQL 语句,查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。查询结果的格式如下:   解题思路:建表语句:1CreatetableIfNotExistsProject_1075(project_idint,employee_idint);2Createtable......
  • 构造MySQL错误server has gone away
    interactive_timeout和wait_timeout默认值是28800秒即8小时。手动修改interactive_timeout时间为3秒setglobalinteractive_timeout=3;重新进入MySQL查看值interactive_timeout和wait_timeout区别1interactive_timeout针对交互式连接,wait_timeout针对非交互式连接。通过My......
  • MYSQL 笔记
    连接数据库shell>mysql-hhost-uuser-pEnterpassword:断开数据库mysql>QUIT查询版本号和当前日期mysql>SELECTVERSION(),CURRENT_DATE;将mysql用作一个简单的计算器:mysql>SELECTSIN(PI()/4),(4+1)*5;MYSQL提示符含义|提示符|含义|mysql>准备好接受新......
  • mysql与redis如何保证数据一致性
    1.先更新MySQL数据库,再删除缓存,再从数据库查询到的最新的数据同步到redis。采用最终一致性性策略。缺点:相较于mq的方式,这种方式由于要查数据库并将最新数据写到redis,可能会造成接口响应速度变慢。2.更新mysql数据库,再采用mq异步的方式,将数据同步到redis中。缺点:数据同步延时......
  • MySQL笔记之Checkpoint机制
    CheckPoint是MySQL的WAL和Redolog的一个优化技术。 一、Checkpoint机制CheckPoint做了什么事情?将缓存池中的脏页刷回磁盘。checkpoint定期将dbbuffer的内容刷新到datafile,当遇到内存不足、dbbuffer已满等情况时,需要将dbbuffer中的内容/部分内容(特别是脏数据)转储到datafi......
  • 10.大牛是怎么思考设计MySQL优化方案的?
    https://www.cnblogs.com/keme/p/10300154.htmlhttps://www.cnblogs.com/keme/p/10472283.html ......
  • go操作mysql
    数据库连接:使用database/sql包时必须注入(至少)一个数据库驱动。gogetgithub.com/go-sql-driver/mysql 导入包:import("database/sql"_"github.com/go-sql-driver/mysql") 通过Init函数连接数据库db,dbErr=sql.Open("mysql","root:root123456@tcp(127.0.0......
  • 【MySQL】MySQL基础07— SQL学习 — DQL — 分组查询(转载请注明出处)
    SQL学习—DQL—分组查询5.分组查询背景:在分组函数的内容中,我们提及和分组函数一起查询的字段会有限制,产生错误。因为分组函数是将所以的参数统计成一个结果,而查询的字段是返回符合条件的个数,那么就会出错。所以引入了分组查询,将表中的相同的内容切分成数块,然后分别进行统......
  • Python ORM Pony MySQL数据库 常用操作
    Pony是一个高级的对象关系映射器ORM框架。Pony它能够使用Python生成器表达式和lambdas向数据库编写查询。Pony分析表达式的抽象语法树,并将其转换为SQL查询。支持SQLite,MySQL,PostgreSQL和Oracle等数据库,本文主要介绍PythonORMPony中MySQL数据库常用操作,及数据增加、删除、修......