185. 部門工資前三高的員工
題目描述
Employee 表包含所有員工資訊,每個員工有其對應的 Id, salary 和 department Id 。
+----+-------+--------+--------------+
| Id | Name | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1 | Joe | 70000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
| 5 | Janet | 69000 | 1 |
| 6 | Randy | 85000 | 1 |
+----+-------+--------+--------------+
Department 表包含公司所有部門的資訊。
+----+----------+
| Id | Name |
+----+----------+
| 1 | IT |
| 2 | Sales |
+----+----------+
編寫一個 SQL 查詢,找出每個部門工資前三高的員工。例如,根據上述給定的表格,查詢結果應返回:
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT | Max | 90000 |
| IT | Randy | 85000 |
| IT | Joe | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
+------------+----------+--------+
題目難度:困難
分析
工資前三高的員工可以通過連表求出來。
連表的條件:e1.DepartmentId = e2.DepartmentId and e1.Salary <= e2.Salary
再通過group by e1.Id having count(distinct e2.Salary) <= 3 求得前三高的員工
部門的名字也是通過連表求出來
連表的條件:e1.DepartmentId = d.Id
最後輸出結果需要進行排序
order by d.Name, e1.Salary desc;
程式碼
# Write your MySQL query statement below
select
d.Name Department, e1.Name Employee, e1.Salary
from
Employee e1, Employee e2, Department d
where
e1.DepartmentId = e2.DepartmentId
and
e1.Salary <= e2.Salary
and
e1.DepartmentId = d.Id
group by
e1.Id
having
count(distinct e2.Salary) <= 3
order by
d.Name, e1.Salary desc
;
題目連結
https://leetcode-cn.com/problems/department-top-three-salaries/description/
相關文章
- 部門工資最高的員工
- 案例(員工管理/部門管理)
- 模擬資料庫之部門員工資料庫
- mysql三表聯合查詢(員工表,部門表,工資表)MySql
- 前員工,困在競業裡
- 員工自助服務門戶:HCM賦能員工提升
- 技術部員工績效考核方案
- 前員工如何看待 Telltale Games 的死而復生?GAM
- 不讓資料隨員工走人:防止內部資訊洩露的策略
- 美國行政部門員工被要求披露加密貨幣持有情況加密
- HackerOne內部員工竊取漏洞報告
- 《英雄聯盟》Riot總部超過150名員工舉行罷工
- 遊戲公司和前員工的「一地雞毛」遊戲
- 啦啦啦啦員工工資合計程式碼
- 員工電腦資訊保安
- 員工不出力的原因
- 員工工作管理
- Teamblind:77.22%的特斯拉員工擔心裁員
- 用C++編寫一個簡單的員工工資管理系統~C++
- 前Twitter員工因向沙烏地阿拉伯移交資料被定罪
- 詩悅網路總部大廈正式動工,打造員工幸福感新標杆
- 創新公司員工的資訊管理系統
- SoFi: 36%的美國員工希望以加密貨幣接收部分或全部工資加密
- 員工離職時
- 員工工作沒精神
- 員工管理系統
- 特斯拉前員工曝光:客戶敏感影像會被私下傳播
- 從狂熱玩家到公司員工,這是一些暴雪員工的故事
- 怎麼實現員工和工資大資料分析,echarts+js實現大資料EchartsJS
- 阿里有三大奇怪的員工阿里
- 全球遊戲業幾乎都在降薪裁員 怎麼這家公司反而給員工漲工資?遊戲
- 前Google員工推雲安全服務檢測網站掛馬Go網站
- 如何避免員工洩密
- 阿里巴巴有一群全年無休從不領工資的高智商員工阿里
- 停止員工拖延症!工時管理系統的作用之一
- 工信部:將建2個公共工業雲平臺和1個工業大資料平臺大資料
- 10 僅需1步,獲取任意公司員工內部郵箱
- 授權店員:釋放員工的全部潛力