SELECT bl.name location,COUNT(t.id) transactions,AVG(basket.total_items) avg_basket_size,AVG(t.final_total) avg_transaction_value FROM business_locations bl JOIN transactions t ON bl.id=t.location_id JOIN (SELECT transaction_id,SUM(quantity) total_items FROM transaction_sell_lines GROUP BY transaction_id) basket ON t.id=basket.transaction_id WHERE t.type="sell" GROUP BY bl.id,bl.name ORDER BY avg_basket_size DESC;