181. Employees Earning More Than Their Managers
Description
Table: Employee
+-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | | salary | int | | managerId | int | +-------------+---------+ id is the primary key (column with unique values) for this table. Each row of this table indicates the ID of an employee, their name, salary, and the ID of their manager.
Β
Write a solutionΒ to find the employees who earn more than their managers.
Return the result table in any order.
The result format is in the following example.
Β
Example 1:
Input: Employee table: +----+-------+--------+-----------+ | id | name | salary | managerId | +----+-------+--------+-----------+ | 1 | Joe | 70000 | 3 | | 2 | Henry | 80000 | 4 | | 3 | Sam | 60000 | Null | | 4 | Max | 90000 | Null | +----+-------+--------+-----------+ Output: +----------+ | Employee | +----------+ | Joe | +----------+ Explanation: Joe is the only employee who earns more than his manager.
Solutions
Solution 1: Self-Join + Conditional Filtering
We can find employees' salaries and their managers' salaries by self-joining the Employee table, then filter out employees whose salaries are higher than their managers' salaries.
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 | |