La tua richiesta viene interpretata come:
select distinct (ca.id) as id, acc.name as accName, . . .
Questo è uno standard distinct dichiarazione. Se vuoi solo una riga per ca.id con i valori della prima riga (basati su order by ), quindi usa distinct on :
select distinct on (ca.id) ca.id, acc.name as accName, . . .