All problems

Top Earner per Department

mediumSQLGroupByJoins

Every department head at Kestrel Labs has been sent the same one-line question ahead of the pay round: what is the top of the range on your team today? It is a benchmarking figure — a head cannot argue for a new hire at a given level without knowing what the ceiling on their own team already is.

One sheet covers all four heads, one row each, in team-number sequence so each head can find their own line without reading the others.

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 two columns, department_id and top_salary (the largest salary among the people on that team), one row per team that has at least one employee, ordered by department_id ascending. Return the salary figure only — not the name of the person earning it.

Example output — shape only, on invented teams. Only the pay figure comes back, never the name of the person on it:

department_id top_salary
21 168000
24 93500
27 210000

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…