Como você descobriu, você não pode combinar
DISTINCT
e ORDER BY
se você não ordenar pela expressão distinta primeiro:-
nem em agregados:
-
nem em SELECT:
No entanto, poderia usar algo como
array_to_string(arry_uniq_stable(array_agg(nome ORDER BY tid DESC)), ', ')
com a ajuda de uma função
arry_uniq_stable
que remove duplicatas em uma matriz sem alterar sua ordem, como dei um exemplo em https:// stackoverflow.com/a/42399297/5805552
Por favor, tome cuidado para usar um
ORDER BY
expressão que realmente lhe dá um resultado determinístico. Com o exemplo que você deu, tid
sozinho não seria suficiente, pois existem valores duplicados (8) com diferentes nome
.