PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ordinamento di valori di colonna distinti per (primo valore di) altra colonna nella funzione di aggregazione

Elimina la necessità di fare una distinzione preaggregando

select string_agg(sometext, ' ' order by numval)
from (
    select sometext, min(numval) as numval
    from t
    group by sometext
) s

Risposta di @Gordon portato un buon punto. Cioè se ci sono altre colonne necessarie. In questo caso un distinct on è consigliato

select x, string_agg(sometext, ' ' order by numval)
from (
    select distinct on (sometext) *
    from t
    order by sometext, numval
) s
group by x