Revenue by Rider City
UrbanHop's finance lead wants to see which cities are actually driving revenue, based on where each rider is from (not the driver). The same report gets pointed at the cancellations too — fares the platform never collected are worth knowing city by city, and they are not spread evenly — so which kind of ride to count is a setting on the report rather than a fixed rule.
Riders
| id | name | city | signup_date |
|---|---|---|---|
| 1 | Maya Chen | Austin | 2023-01-05 |
| 2 | Noah Patel | Denver | 2023-02-14 |
| 3 | Zara Ahmed | Austin | 2023-03-01 |
| 4 | Leo Kim | Seattle | 2023-04-20 |
| 5 | Ivy Brooks | Denver | 2023-05-11 |
Rides
| id | rider_id | driver_id | distance_km | fare | ride_date | status |
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 5.2 | 12.5 | 2023-06-01 | completed |
| 2 | 1 | 2 | 3 | 8 | 2023-06-03 | completed |
| 3 | 2 | 2 | 10 | 22 | 2023-06-02 | completed |
| 4 | 3 | 1 | 2.1 | 6.5 | 2023-06-05 | cancelled |
| 5 | 3 | 4 | 4.4 | 11 | 2023-06-06 | completed |
| 6 | 4 | 3 | 7.8 | 18 | 2023-06-04 | completed |
| 7 | 5 | 2 | 1.5 | 5 | 2023-06-07 | cancelled |
| 8 | 2 | 2 | 12.3 | 26.5 | 2023-06-10 | completed |
| 9 | 1 | 1 | 6.6 | 15 | 2023-06-12 | completed |
| 10 | 4 | 3 | 3.3 | 9 | 2023-06-15 | completed |
| 11 | 5 | 2 | 8.8 | 19.5 | 2023-06-18 | completed |
| 12 | 3 | 1 | 2.9 | 7.5 | 2023-06-20 | cancelled |
Input
Both tables above are already built for you — the rider and ride rows are not read from input. What does arrive is a single line holding the ride status finance wants counted this time.
Task: Counting only rides whose status is exactly the one that arrives, print a dict mapping each rider's city → the total fare from riders in that city. A city with no ride at that status does not appear at all, and a status that none of the rides carry gives an empty dict rather than an error.
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