Total paid, joined across three tables
Maxis stores subscribers, plans, and payments in three separate tables. For each subscriber, return their name, their plan's name, and the total amount they've paid so far.
Subscribers who haven't made any payment yet should still appear, with a total of 0.
Return name, plan_name, and total_paid.
Schema
| id | INT |
| name | TEXT |
| plan_id | INT |
| id | INT |
| plan_name | TEXT |
| monthly_fee | NUMERIC |
| id | INT |
| subscriber_id | INT |
| amount | NUMERIC |
Basic
The example input, expected output, and walkthrough for this question unlock with a Basic plan.
Basic
The reference solution and walkthrough for this question unlock with a Basic plan.
Basic
This is a Basic question
Premium practice questions unlock with a Basic plan. The full solution, expected output, and grading are available to Basic members.
RM 25/mo · cancel anytime
The interviewer's next question
Billing wants a sanity check before the amounts: for each subscriber, how many payments have they made? Return name and payment_count — subscribers with none should show 0.
Solving follow-ups — the questions an interviewer actually asks next — unlocks with a Basic plan.
See Basic plansRM 25/mo · cancel anytime
Now roll it up the other direction: for each plan, how much total revenue has it brought in across all its subscribers? Return plan_name and total_paid.
Solving follow-ups — the questions an interviewer actually asks next — unlocks with a Basic plan.
See Basic plansRM 25/mo · cancel anytime