¿Por qué no hay "SELECT foo. *… GROUP BY foo.id" en Postgres?

Tengo una consulta como esta:

select foo.*, count(bar.id)
from foo inner join bar on foo.id = bar.foo_id
group by foo.id

Esto funcionó muy bien con SQLite y MySQL. Sin embargo, Postgres se queja de que yo no incluyo todas las columnas de Foo en elgroup by cláusula. ¿Por qué es esto? ¿No es suficiente que foo.id sea único?

Respuestas a la pregunta(4)

Su respuesta a la pregunta