Так как вам нужно сделать 'max' для двух столбцов, вам нужны подзапросы.Я не проверял следующий запрос, но он должен выглядеть примерно так:
SELECT patient_id, MAX(visit_id) AS maxvisit, maxdate
FROM (
SELECT patient_id, visit_id, MAX(visit_date) AS maxdate
FROM mytable
GROUP BY patient_id, visit_id
) t
GROUP BY patient_id, maxdate
Надеюсь, это поможет.