Jiné databáze (např. MS SQL Server) vám neumožňují míchat agregované hodnoty s neagregovanými hodnotami jen proto, že byste dostali špatný výsledek.
Pokud tedy chcete neagregované hodnoty ze záznamu, kde byla maximální hodnota, připojte se znovu k tabulce:
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