runtime
25 / 88

task Correlated subqueries · medium

Big spenders for their region

A shopper's spend is the sum of quantity × unit_price over their delivered orders. Return name, region and spend for shoppers whose spend is greater than the average spend of shoppers in the same region.

what to return

Columns
nameregionspend in this order
Rows
6 rows · any order
Watch for
Only shoppers with at least one delivered order are part of a region's average.
Shoppers with no region are excluded.
Round spend to 2 decimals (compare unrounded values).
Skill
Compare each row with an aggregate of its own group. Refresher: Revenue across tables →

expected result

Your query should return exactly these columns and values. Run it and compare.

expected result6 rows · any order
nameregionspend
Ana RuizWest367
Ben OkaforEast270
Dmitri VolkovNorth128

first 3 of 6 rows

data you can query

Sample rows from each table. Each column shows its type underneath; → marks a link to another table.

shoppers5 columns · 17 rows
idinteger · keynametextemailtextregiontextsignup_datetext
1Ana Ruizana@harbor.testWest2025-01-03
2Ben Okaforben@harbor.testEast2025-01-05
3Chloe Parkchloe@harbor.testWest2025-01-09
4Dmitri Volkovdmitri@harbor.testNorth2025-01-14
5Esi MensahNULLSouth2025-01-20

showing 5 of 17 rows

sales_orders5 columns · 33 rows
idinteger · keyshopper_idinteger → shoppersorder_datetextstatustextdelivered_datetext
10112025-01-04delivered2025-01-08
10222025-01-06delivered2025-01-07
10312025-01-15delivered2025-01-20
10432025-01-18cancelledNULL
10542025-01-22delivered2025-01-31

showing 5 of 33 rows

order_lines4 columns · 48 rows
order_idinteger → sales_ordersitem_idinteger → catalog_itemsquantityintegerunit_pricereal
1011139
1013219.5
1024159
1035145
10310312

showing 5 of 48 rows

solution.sql
 

Hints and the answer are always available. Using them counts the question as solved with help.