PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Classement des valeurs de colonne distinctes par (première valeur de) autre colonne dans la fonction d'agrégation

É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