1

我正在开发一个 ROR 应用程序,我将 Hstore 与 PostgreSQL 数据库一起使用,我问我是否可以按表上的 Hstore 键进行分组?

我这样做了:

select state , count(*) from infractions group by details -> 'commune';`

但我收到此错误:

column "infractions.state" must appear in the GROUP BY clause or be used in an aggregate function

详细信息是 Hstore 列,她是我的详细信息的示例:

"adress"=>"", "commune"=>"14", "province"=>"6", "description"=>"Ce fichier est sous licence Creative Commons"

谢谢

4

1 回答 1

2

人们在从 MySQL 迁移时偶尔会遇到这种情况。MySQL 允许从GROUP BY子句中省略列。PostgreSQL 没有。您的实际问题是您缺少 state 列。你有两个选择。如果你只想拉一个状态,你可以把它放在这样的聚合中:

select max(state) , count(*) from infractions group by details -> 'commune';

如果您也想按州分组,您可以:

select state , count(*) from infractions group by state, details -> 'commune';
于 2013-04-19T16:56:48.153 回答