Váš dotaz je interpretován jako:
select distinct (ca.id) as id, acc.name as accName, . . .
Toto je standardní distinct tvrzení. Pokud chcete pouze jeden řádek na ca.id s hodnotami z prvního řádku (na základě order by ), pak použijte distinct on :
select distinct on (ca.id) ca.id, acc.name as accName, . . .