Products Priced Above Their Category Average

List products whose list price is above the average list price of their own category.

Expected output

category, name, price, category_avg (rounded to 2 decimals). Sorted by category, then price descending.

Row order is checked. Column names are not checked; numbers are compared to 2 decimals.

Dataset: E-commerce store

An online store selling electronics, home goods, books, apparel and beauty products to customers in six countries (Jan 2025 to Mar 2026).

customers

One row per registered customer.

customer_idINTEGERprimary key
nameTEXT
countryTEXTUS, UK, DE, IN, BR or CA
signup_dateTEXTYYYY-MM-DD
referred_byINTEGERcustomer_id of the referrer, NULL if none
products

Product catalog with current list price.

product_idINTEGERprimary key
nameTEXT
categoryTEXT
priceREALlist price in USD
orders

One row per order. Only completed orders count as revenue.

order_idINTEGERprimary key, increases with order_date
customer_idINTEGER
order_dateTEXTYYYY-MM-DD
statusTEXTcompleted, cancelled or returned
order_items

Line items. Revenue of a line = quantity * unit_price (unit_price may include a discount).

order_idINTEGER
product_idINTEGER
quantityINTEGER
unit_priceREALprice actually charged per unit

Engine: SQLite. Dates are text (YYYY-MM-DD); use strftime(), date() and julianday() for date math.

Related problems

SQLite · runs in your browser
Ctrl/⌘ + Enter to run
Expected output preview (10 rows, order matters)
categorynamepricecategory_avg
ApparelRunning Shoes11063
ApparelRain Jacket9563
ApparelDenim Jeans6863

Showing 3 of 10 rows.

Hints

Worked solution

Run at least one query to unlock it.