Employees Earning More Than Their Managers
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 | Email |
+----+---------+
| 1 | [email protected] |
| 2 | [email protected] |
| 3 | [email protected] |
+----+---------+
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.
+---------+
| Email |
+---------+
| [email protected] |
+---------+
Answer:
# Join
select e1.name from Employee e1
join Employee e2 on e1.ManagerId=e2.Id
where e1.Salary>e2.Salary;
OR
# where
select e1.name from Employee e1,Employee e2
where e1.ManagerId=e2.Id
and e1.Salary>e2.Salary;
Reference:
https://leetcode.com/problems/employees-earning-more-than-their-managers/solution/s/solution/