PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Ordenando valores de coluna distintos por (primeiro valor de) outra coluna na função agregada


Elimine a necessidade de fazer uma distinção pré-agregando
select string_agg(sometext, ' ' order by numval)
from (
    select sometext, min(numval) as numval
    from t
    group by sometext
) s

resposta de @Gordon trouxe um bom ponto. Isto é, se houver outras colunas necessárias. Neste caso, um distinct on é recomendado
select x, string_agg(sometext, ' ' order by numval)
from (
    select distinct on (sometext) *
    from t
    order by sometext, numval
) s
group by x