All problems

Budget per Head

mediumSQLJoinsGroupByArithmetic

Two teams at Kestrel Labs have both told the CFO they are underfunded, and both are right on their own terms: one has a large budget spread over more people, the other a small budget and almost nobody. An analyst is asked to settle it with a figure that makes the two comparable — how much budget each team has behind each person on it.

That means dividing a fact about the team by a fact about its people, so the two tables have to be brought together before the division can happen.

departments — one row per team. budget is that team's annual budget in dollars.

id name budget
1 Engineering 900000
2 Sales 400000
3 Marketing 250000
4 Data 500000

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

Both tables already exist in the database — there is nothing to create or load.

Task: Write a query returning two columns, name (the team's name) and budget_per_head (the team's budget divided by how many employees it has, rounded to two decimal places), one row per team, highest figure first. No two teams tie. Give a true decimal result, not a whole-number one — a team whose figure is not a round number must show its cents.

Example output — shape only, on invented teams. The lower two rows show the point about decimals: a figure that does not land whole keeps its cents rather than being cut back to a round number:

name budget_per_head
Legal 240000
Logistics 87333.33
Support 62500.75

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…