Ich weiß nichts über Squeel, aber der Fehler, den Sie sehen, könnte durch ein Upgrade von PostgreSQL behoben werden.
Ab PostgreSQL 9.1 können Sie, sobald Sie einen Primärschlüssel in GROUP BY aufgelistet haben, zusätzliche Spalten für diese Tabelle überspringen und sie trotzdem in der SELECT-Liste verwenden. Die Versionshinweise für Version 9.1 sagen Sie uns:
Übrigens, Ihre alternative Abfrage kann vereinfacht werden, ein zusätzlicher DISTINCT
wäre überflüssig.
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