The Shelf Warmer
Clearance planning at Whetcode Supply starts at the wrong end of the catalogue: the item that has shifted the fewest units is the one taking up shelf space it has not earned, and it goes into the sale first. Merchandising wants that single item and the units behind it, nothing else — one line they can act on.
Two items in this catalogue have shifted exactly the same number of units, so the answer depends on a tie-break as much as on the data. Without one stated, the query has two equally correct answers and will hand back whichever it feels like.
orders — one row per order. customer_id is the id of the customer who placed it, product_id the id of the item bought, quantity how many units of that item, and order_date the day it was placed. An order row covers one item only.
| id | customer_id | product_id | quantity | order_date |
|---|---|---|---|---|
| 1 | 1 | 1 | 2 | 2023-02-01 |
| 2 | 1 | 4 | 1 | 2023-02-01 |
| 3 | 2 | 2 | 1 | 2023-02-10 |
| 4 | 3 | 3 | 3 | 2023-03-05 |
| 5 | 4 | 5 | 5 | 2023-03-11 |
| 6 | 1 | 3 | 1 | 2023-04-02 |
| 7 | 5 | 1 | 4 | 2023-05-20 |
| 8 | 2 | 5 | 2 | 2023-05-22 |
| 9 | 3 | 4 | 1 | 2023-06-01 |
| 10 | 5 | 2 | 1 | 2023-06-15 |
products — the catalogue, one row per item on sale. price is what a single unit costs, in dollars.
| id | name | category | price |
|---|---|---|---|
| 1 | Wireless Mouse | electronics | 25.0 |
| 2 | Standing Desk | furniture | 350.0 |
| 3 | Desk Lamp | furniture | 40.0 |
| 4 | Mechanical Keyboard | electronics | 85.0 |
| 5 | Notebook Set | office | 12.0 |
The tables already exist in the database — there is nothing to create or load.
Task: Write a query returning two columns, name (the product's name) and units (the total units of that item sold across every order), returning only the single slowest-selling product: fewest units first, and when two items have the same units, the one that comes first alphabetically by name. A product nobody has ever ordered does not appear at all, so it cannot be the answer.
Example output — shape only, on an invented item. One row, never a list:
| name | units |
|---|---|
| Ink Refill | 3 |
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