Votre requête est interprétée comme :
select distinct (ca.id) as id, acc.name as accName, . . .
Il s'agit d'un distinct standard déclaration. Si vous voulez une seule ligne par ca.id avec les valeurs de la première ligne (basées sur le order by ), puis utilisez distinct on :
select distinct on (ca.id) ca.id, acc.name as accName, . . .