Hard JOINsAggregation Premium

SQL interview question: Unique Categories per Customer per Month

Cross-Category Shopping Behavior

The recommendation engine team wants to analyze how many product categories each customer shops from per month.

Count unique product categories purchased by each customer per month.

Return customer_id, purchase_month (YYYY-MM), and unique_categories. Order by purchase_month descending, then customer_id.

Inspired by Amazon's customer segmentation problems

Tables

orders 15 rows
  • order_id integer PK
  • customer_id integer → customers
  • order_date text
  • total_amount real
  • status text
order_idcustomer_idorder_datetotal_amountstatus
11012024-01-20249.99delivered
21012024-03-151999.99delivered
41012024-09-0579.99delivered
order_items 19 rows
  • id integer PK
  • order_id integer → orders
  • product_id integer → products
  • quantity integer
idorder_idproduct_idquantity
1131
2211
3261
products 20 rows
  • product_id integer PK
  • product_name text
  • category text
  • price real
  • rating real
product_idproduct_namecategorypricerating
1MacBook ProElectronics1999.994.8
2iPad AirElectronics599.994.8
3AirPods ProElectronics249.994.7

Keep going