Je ne sais pas pour Squeel, mais l'erreur que vous voyez pourrait être corrigée en mettant à jour PostgreSQL.
À partir de PostgreSQL 9.1, une fois que vous avez listé une clé primaire dans GROUP BY, vous pouvez ignorer des colonnes supplémentaires pour cette table et toujours les utiliser dans la liste SELECT. Les notes de version pour la version 9.1 dites-nous :
BTW, votre requête alternative peut être simplifiée, un DISTINCT
supplémentaire serait redondant.
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