Élimine le besoin de faire un distinct en pré agrégeant
select string_agg(sometext, ' ' order by numval)
from (
select sometext, min(numval) as numval
from t
group by sometext
) s
La réponse de @ Gordon
apporté un bon point. C'est s'il y a d'autres colonnes nécessaires. Dans ce cas un distinct on
est recommandé
select x, string_agg(sometext, ' ' order by numval)
from (
select distinct on (sometext) *
from t
order by sometext, numval
) s
group by x