Inne bazy danych (np. MS SQL Server) nie pozwalają na mieszanie wartości zagregowanych z wartościami niezagregowanymi tylko dlatego, że uzyskasz zły wynik.
Tak więc, jeśli chcesz niezagregowane wartości z rekordu, w którym była wartość maksymalna, ponownie dołącz do tabeli:
select x.user, y.col1, y.col2, x.col3
from (
select user, max(col3) as col3
from table
group by user
) x
inner join table y on y.user = x.user and y.col3 = x.col3
order by x.user