Por que não “SELECT foo. *… GROUP BY foo.id” no Postgres?

Eu tenho uma consulta como esta:

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

Isso funcionou muito bem com o SQLite e o MySQL. Postgres no entanto, reclama de mim não incluindo todas as colunas de foo nogroup by cláusula. Por que é isso? Não é suficiente que foo.id seja único?

questionAnswers(4)

yourAnswerToTheQuestion