Which Category Pays the Bills?
Each category manager at Whetcode Supply believes their category is the one carrying the shop, and the argument has reached the point at which somebody has to bring numbers. The figure that settles it is money taken per category, biggest earner at the top.
Neither table holds it. Orders know which item and how many; the catalogue knows the price and which category the item belongs to. The figure only exists once both are in play.
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, category and revenue (the value of every order for items in that category added together, each order being worth its item's price times its number of units, with each category's total rounded to two decimal places), one row per category that has sold at least once, biggest earner first. No two categories tie. A category whose items have never been ordered does not appear at all.
Example output — shape only, on invented figures. The category labels are the real stored ones:
| category | revenue |
|---|---|
| office | 2410 |
| furniture | 1730 |
| electronics | 415 |
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