Employees Earning More Than Managers

Easy

Description

Write a SQL query to find employees who earn more than their managers. Return employee names.

Table:employee
ColumnType
idINT
nameTEXT
salaryINT
managerIdINT

Examples

Input:CREATE TABLE employee (id INT, name TEXT, salary INT, managerId INT); INSERT INTO employee VALUES (1, 'Joe', 70000, 3), (2, 'Henry', 80000, 4), (3, 'Sam', 60000, NULL), (4, 'Max', 90000, NULL);
Output:Joe
Explanation:

Joe earns 70000 and reports to Sam (managerId=3), who earns 60000. Joe earns more than his manager Sam.

Input:CREATE TABLE employee (id INT, name TEXT, salary INT, managerId INT); INSERT INTO employee VALUES (1, 'Alice', 70000, NULL), (2, 'Bob', 80000, 1), (3, 'Carol', 60000, 1), (4, 'David', 75000, 2), (5, 'Eve', 85000, 2);
Output:Bob, Eve
Explanation:

Bob earns 80000 while his manager Alice earns 70000. Eve earns 85000 while her manager Bob earns 80000. Both earn more than their respective managers.

Input:CREATE TABLE employee (id INT, name TEXT, salary INT, managerId INT); INSERT INTO employee VALUES (1, 'Frank', 90000, NULL), (2, 'Grace', 85000, 1), (3, 'Henry', 95000, 1), (4, 'Iris', 80000, 2), (5, 'Jack', 88000, 3);
Output:Henry
Explanation:

Henry earns 95000 while his manager Frank earns 90000, so Henry earns more than his manager. Grace earns less than Frank, Iris earns less than Grace, and Jack earns less than Henry.

Constraints

  • Use self-join

Ready to solve this problem?

Practice solo or challenge other developers in a real-time coding battle!