Sua consulta é interpretada como:
select distinct (ca.id) as id, acc.name as accName, . . .
Este é um padrão
distinct
declaração. Se você quiser apenas uma linha por ca.id
com valores da primeira linha (com base no order by
), então use distinct on
:select distinct on (ca.id) ca.id, acc.name as accName, . . .