forked from LisCoding/Interview-Algo-Practice
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEmployees Earning More Than Their Managers.sql
38 lines (27 loc) · 1.47 KB
/
Employees Earning More Than Their Managers.sql
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
32
33
34
35
// The Employee table holds all employees including their managers. Every employee has an Id, and there is also a column for the manager Id.
// +----+-------+--------+-----------+
// | Id | Name | Salary | ManagerId |
// +----+-------+--------+-----------+
// | 1 | Joe | 70000 | 3 |
// | 2 | Henry | 80000 | 4 |
// | 3 | Sam | 60000 | NULL |
// | 4 | Max | 90000 | NULL |
// +----+-------+--------+-----------+
// Given the Employee table, write a SQL query that finds out employees who earn more than their managers. For the above table, Joe is the only employee who earns more than his manager.
// +----------+
// | Employee |
// +----------+
// | Joe |
// +----------+
// # Write your MySQL query statement below
// # 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')
SELECT EmployeeName as Employee
FROM (SELECT a.Name as EmployeeName, a.Salary as EmployeeSalary, b.Name as ManagerName, b.Salary as ManagerSalary
FROM Employee a, Employee b
WHERE a.ManagerId = b.Id) as T
WHERE EmployeeSalary > ManagerSalary;