Вы пробовали использовать функцию Greatest ()?
Вот краткий пример:
SELECT
userId,
greatest(dt1, dt2, dt3)
FROM testTbl;
Возможно, вы пробовали использовать функцию Max (), как в большинстве языков программирования. Однако в SQL Max является функцией агрегирования. В нем можно указать только одно поле, и оно будет возвращать самое большое значение в этом столбце, сгруппированное по группам, которые объединяет ваша GROUP BY.
Функция Greatest () в mySQL является эквивалентом функции Max () из большинства других языков.