首页 > 其他分享 >185. 部门工资前三高的所有员工

185. 部门工资前三高的所有员工

时间:2023-06-29 15:46:39浏览次数:45  
标签:name Employee 员工 前三高 departmentId 185 Department e1 id

185. 部门工资前三高的所有员工

SQL架构

表: Employee

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| id           | int     |
| name         | varchar |
| salary       | int     |
| departmentId | int     |
+--------------+---------+
Id是该表的主键列。
departmentId是Department表中ID的外键。
该表的每一行都表示员工的ID、姓名和工资。它还包含了他们部门的ID。

 

表: Department

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
+-------------+---------+
Id是该表的主键列。
该表的每一行表示部门ID和部门名。

 

公司的主管们感兴趣的是公司每个部门中谁赚的钱最多。一个部门的 高收入者 是指一个员工的工资在该部门的 不同 工资中 排名前三

编写一个SQL查询,找出每个部门中 收入高的员工

任意顺序 返回结果表。

查询结果格式如下所示。

 

示例 1:

输入: 
Employee 表:
+----+-------+--------+--------------+
| id | name  | salary | departmentId |
+----+-------+--------+--------------+
| 1  | Joe   | 85000  | 1            |
| 2  | Henry | 80000  | 2            |
| 3  | Sam   | 60000  | 2            |
| 4  | Max   | 90000  | 1            |
| 5  | Janet | 69000  | 1            |
| 6  | Randy | 85000  | 1            |
| 7  | Will  | 70000  | 1            |
+----+-------+--------+--------------+
Department  表:
+----+-------+
| id | name  |
+----+-------+
| 1  | IT    |
| 2  | Sales |
+----+-------+
输出: 
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT         | Max      | 90000  |
| IT         | Joe      | 85000  |
| IT         | Randy    | 85000  |
| IT         | Will     | 70000  |
| Sales      | Henry    | 80000  |
| Sales      | Sam      | 60000  |
+------------+----------+--------+
解释:
在IT部门:
- Max的工资最高
- 兰迪和乔都赚取第二高的独特的薪水
- 威尔的薪水是第三高的

在销售部:
- 亨利的工资最高
- 山姆的薪水第二高
- 没有第三高的工资,因为只有两名员工
select d.name as Department, e1.name as Employee,e1.Salary as Salary

from 
    Employee e1
    inner join
    Department d
    on e1.departmentId = d.id

where (
    select count(distinct e2.salary) 
    from Employee e2
    where e2.salary > e1.salary and e1.departmentId = e2.departmentId) < 3

 

标签:name,Employee,员工,前三高,departmentId,185,Department,e1,id
From: https://www.cnblogs.com/fulaien/p/17514355.html

相关文章

  • 职场员工有没有潜力,看这一个能力就够了
    在我组织的研讨会上,讲故事的课程通常以一个思考练习开始。我会让参与者闭上眼睛回忆《小红帽》的故事,尤其考虑其中的情节、起伏和结尾。这个练习有时会引发一阵笑声,人们会好奇这与课程有什么相关性,或者干脆把《小红帽》与《三只小猪》的故事混淆了。但我发现绝大部分参与者(根据举手......
  • 02 CRUD员工
    完善登录功能问题因为可以没有登录就直接跳转到index页面,所以我们必须要增加一个拦截器或者过滤器,在过滤器中判断用户是否已经完成登录,只有登录成功后才可以访问系统中的页面。代码实现先在reggie下创建一个filter包,新建一个LoginCheckFilter类:packagecom.itheima.reg......
  • 2023年程序员工资中位数增长10%?开发者最常用的语言竟然是……
    在调研了全球超过90000名开发者之后,程序员社区StackOverflow重磅发布了《2023DeveloperSurvey》调查报告。在本次报告中,StackOverflow从工具、编码、工作、社区等维度展开,同时深入研究了AI/ML技术,并解析开发者如何在工作流程中使用这些技术。接下来,我们将通过这份报告......
  • 《C++》员工管理系统
    学习差不多了,来小项目已经做两个晚上了目前只实现了批量添加和显示,数据结构采用链表......
  • CF1853D Doctor's Brown Hypothesis
    题意简述给你一张\(n\)个点\(m\)条边的有向图,你需要找出有多少个点对\((u,v),1\leu\lev\len\),满足存在一条从\(u\)到\(v\)的长度为\(k\)的途径,和一条从\(v\)到\(u\)的长度为\(k\)的途径。\(1\len\le10^5\),\(0\lem\le2\times10^5\),\(n^3\le......
  • 企业数智化转型数智员工到底能做什么?
    随着数字技术的不断成熟和应用,数据分析、数智员工、产业互联等应用场景正发挥越来越重要的作用。随着ChatGPT的爆火,数智员工迅速进入大众视野。揭开数智员工的真面目常见的数字员工主要分为两大类,一类是虚拟数字人,如基于“元宇宙”概念的虚拟数字人技术,他们拥有真人般的面部表情、......
  • 客户案例:如何让企业员工远离网络钓鱼邮件陷阱?
    客户背景某大型餐饮企业是一家在全国范围内拥有多家连锁店的知名品牌,以优秀的产品和服务质量,严格的质量控制和管理体系,以及开创性的营销策略,赢得了广泛的客户认可和信任。而餐饮企业往往拥有多个分支机构和门店,员工数量较多且流动性大,二次认证等账号保护手段无法推行,此外员工安全意......
  • 【mysql】1378. 使用唯一标识码替换员工ID
    题目:Employees表:±--------------±--------+|ColumnName|Type|±--------------±--------+|id|int||name|varchar|±--------------±--------+id是这张表的主键。这张表的每一行分别代表了某公司其中一位员工的名字和ID。EmployeeUNI表:±--------......
  • 2023-06-18:给定一个长度为N的一维数组scores, 代表0~N-1号员工的初始得分, scores[i] =
    2023-06-18:给定一个长度为N的一维数组scores,代表0~N-1号员工的初始得分,scores[i]=a,表示i号员工一开始得分是a,给定一个长度为M的二维数组operations,operations[i]={a,b,c}。表示第i号操作为:如果a==1,表示将目前分数<b的所有员工,分数改成b,c这个值无用,如果a==2,表示将......
  • 2023-06-16:给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认
    2023-06-16:给你一份工作时间表hours,上面记录着某一位员工每天的工作小时数。我们认为当员工一天中的工作小时数大于8小时的时候,那么这一天就是「劳累的一天」。所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格大于「不劳累的天数」。请你返回「表现良好时间段」......