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, . . .