my approach is
SELECT * FROM Shop AS a1 inner join ( SELECT a2.user_id, max(a2.spent) AS `spent` FROM Shop AS a2 GROUP by a2.user