अगर आपका डेटा बहुत बड़ा नहीं है, तो आप इस ट्रिक को MySQL में इस्तेमाल कर सकते हैं:
select user_id, max(dte),
substring_index(group_concat(place_visited order by cnt desc), ',', 1)
from (select user_id, place_visited, count(*) as cnt, max(recorded_date) as dte
from user_places
group by user_id, place_visited
) upv
group by user_id;