Non saprei di Squeel, ma l'errore che vedi potrebbe essere corretto aggiornando PostgreSQL.
A partire da PostgreSQL 9.1, una volta elencata una chiave primaria in GROUP BY puoi saltare colonne aggiuntive per questa tabella e usarle ancora nell'elenco SELECT. Le note di rilascio per la versione 9.1 dicci:
A proposito, la tua query alternativa può essere semplificata, un ulteriore DISTINCT
sarebbe ridondante.
SELECT o.*, c.my_count
FROM onetable o
JOIN (
SELECT one_id, count(*) AS my_count
FROM anothertable
GROUP BY one_id
) c ON o.id = counts.one_id