All problems

Which Category Pays the Bills?

mediumSQLJoinsGroupBy

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

Discussion

Sign in to join the discussion — reading is open to everyone.

Loading comments…