Description
Write a SQL query to find employees who earn more than their managers. Return employee names.
Table:
employee| Column | Type |
|---|---|
| id | INT |
| name | TEXT |
| salary | INT |
| managerId | INT |
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:
JoeExplanation:
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, EveExplanation:
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:
HenryExplanation:
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