Code RoomCount paid orders per customer
HardPrep Room Coding #5134

Count paid orders per customer

CodingAlgorithms & data structuresSenior–Staff~12 min

Given `orders` with columns `order_id`, `customer`, `amount`, `status` and `placed`, return per `customer` the count of paid orders as `paid` and the count of all their orders as `total`. Every customer appears, even with zero paid. Sort by `customer` ascending.

Implement
order_mix(orders: dataframe) → dataframe
Examples
in[{"__df__":[{"amount":120.5,"placed":"2024-01-05","status":"paid","customer":"ada","order_id":1},{"amount":80,"placed":"2024-01-07","status":"refunded","customer":"bo","order_id":2},{"amount":45.25,"placed":"2024-02-11","status":"paid","customer":"ada","order_id":3},{"amount":200,"placed":"2024-02-14","status":"paid","customer":"cy","order_id":4},{"amount":15.75,"placed":"2024-03-02","status":"pending","customer":"bo","order_id":5},{"amount":60,"placed":"2024-03-19","status":"paid","customer":"ada","order_id":6}]}]out[{"paid":3,"total":3,"customer":"ada"},{"paid":0,"total":2,"customer":"bo"},{"paid":1,"total":1,"customer":"cy"}]
What a strong answer looks like

State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.

0:00 of about 12 min
InputExpectedGot
[{"__df__":[{"amount":120.5,"placed":"2024-01-05","status":"paid","customer":"ada","order_id":1},{"amount":80,"placed":"2024-01-07","status":"refunded","customer":"bo","order_id":2},{"amount":45.25,"placed":"2024-02-11","status":"paid","customer":"ada","order_id":3},{"amount":200,"placed":"2024-02-14","status":"paid","customer":"cy","order_id":4},{"amount":15.75,"placed":"2024-03-02","status":"pending","customer":"bo","order_id":5},{"amount":60,"placed":"2024-03-19","status":"paid","customer":"ada","order_id":6}]}][{"paid":3,"total":3,"customer":"ada"},{"paid":0,"total":2,"customer":"bo"},{"paid":1,"total":1,"customer":"cy"}]not run yetsample