leetcode-181. 超過經理收入的員工

  • 題目

SQL架構:

Create table If Not Exists Employee (Id int, Name varchar(255), Salary int, ManagerId int)
Truncate table Employee
insert into Employee (Id, Name, Salary, ManagerId) values ('1', 'Joe', '70000', '3')
insert into Employee (Id, Name, Salary, ManagerId) values ('2', 'Henry', '80000', '4')
insert into Employee (Id, Name, Salary, ManagerId) values ('3', 'Sam', '60000', 'None')
insert into Employee (Id, Name, Salary, ManagerId) values ('4', 'Max', '90000', 'None')

Employee 表包含所有員工,他們的經理也屬於員工。每個員工都有一個 Id,此外還有一列對應員工的經理的 Id。

±—±------±-------±----------+
| Id | Name | Salary | ManagerId |
±—±------±-------±----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | NULL |
| 4 | Max | 90000 | NULL |
±—±------±-------±----------+
給定 Employee 表,編寫一個 SQL 查詢,該查詢可以獲取收入超過他們經理的員工的姓名。在上面的表格中,Joe 是唯一一個收入超過他的經理的員工。

±---------+
| Employee |
±---------+
| Joe |
±---------+

來源:力扣(LeetCode)
鏈接:181. 超過經理收入的員工
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

  • 分析

首先題目的查詢涉及Name、Salaray、Id和ManagerId,涉及字段較多,所以想到用連接,注意是同一張表要使用別名。連接的參考量即爲本題的判斷條件:Salary。具體分析見代碼。

  • 代碼
# Write your MySQL query statement below
select Name as Employee from Employee as e where
Salary >(select Salary from Employee where Id=e.ManagerId);

在這裏插入圖片描述

2019.12.20

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章