All problems

The Manager Pay Gap

hardSQLSelf-JoinArithmetic

A fairness audit at Kestrel Labs is checking for compressed reporting lines — cases in which somebody is paid nearly as much as the person they report to. It is a standard red flag: it usually means a report has been kept at market rate while their manager's salary has sat still, and the next raise will invert the two.

The audit wants the three tightest cases to look at first. The obstacle is that a person and their manager are both employee rows, and a row only holds a number pointing at the other one.

employees — one row per person. department_id is the team they sit on, given as the matching id in departments; salary is annual pay in dollars; hire_date is the day they started, written year-month-day; manager_id is the id of the person they report to, and is NULL for anyone who reports to nobody.

id name department_id salary hire_date manager_id
1 Ava Chen 1 145000 2021-03-14 NULL
2 Ben Ortiz 1 118000 2022-06-01 1
3 Cara Novak 1 121000 2023-01-10 1
4 Deshawn Lee 2 95000 2020-09-23 NULL
5 Elin Kask 2 88000 2022-11-05 4
6 Farid Amiri 3 76000 2023-04-18 NULL
7 Grace Kim 4 132000 2021-07-30 NULL
8 Hugo Silva 4 110000 2023-02-14 7
9 Ines Duarte 4 104000 2023-08-01 7
10 Jonas Weber 2 91000 2021-12-19 4

The table already exists in the database — there is nothing to create or load.

Task: Write a query returning three columns, employee (the report's name), manager (their manager's name) and gap (the manager's salary minus the employee's salary), returning only the three tightest cases, smallest gap first. Only people who have a manager recorded can appear. A negative gap would mean somebody out-earns their manager and should sort to the very top; there are none in this data, and the third and fourth tightest gaps are 2000 apart, so the three rows are not in doubt.

Example output — shape only, on invented pairs. The top row is the case the task warns about: a negative gap means the report out-earns the manager, and it sorts above every positive one:

employee manager gap
Nils Ahlberg Mira Solberg -2500
Otto Brandt Mira Solberg 1500
Yusuf Kaya Zoe Marchetti 9800

Sign in to solve this problem

Reading problems is free for everyone — solving them (Run, Submit, and tracking what you've solved) needs an account.

Sign in

Discussion

Sign in to join the discussion — reading is open to everyone.

Loading comments…