他のデータベース(MS SQL Serverなど)では、間違った結果が得られるという理由だけで、集計値と非集計値を混在させることはできません。
したがって、最大値があったレコードから非集計値が必要な場合は、テーブルに対して再度結合します。
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