Migrado do MySQL onde esta consulta funcionou:
SELECT DISTINCT
code,
title,
country
FROM
data_a
ORDER BY
sortorder
Basicamente, obtenha uma lista e classifique-a por um usuário/empresa definido sortorder
que não seja baseado em code
, title
, ou country
.
Agora que estou no Postgres, essa consulta não funciona e fica:
ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
LINE 12: sortorder
^
SQL state: 42P10
Character: 135
No entanto, fazer isso retorna duplicatas porque existem campos adicionais não listados aqui que tornam todo o registro exclusivo. Eu só quero os valores exclusivos de code
, title
ou country
na ordem do sortorder
.
Tentei fazer uma subconsulta pensando que poderia classificá-la na subconsulta e trazê-la para a consulta pai já classificada, mas ela aparece em uma ordem não específica ... bem, talvez seja particular, mas é não é a ordem que queremos.
SELECT
DISTINCT s.*
FROM
(
SELECT
code,
title,
country
FROM
data_a
GROUP BY
code,
title,
country,
sortorder
ORDER BY
sortorder
) s;
Alguma sugestão de como fazer isso?
Na verdade, consegui descobrir com: