我正在研究一个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"
感谢
答案 0 :(得分:2)
当他们从MySQL迁移时,人们会偶尔遇到这种情况。 MySQL允许从GROUP BY
子句中省略列。 PostgreSQL没有。您的实际问题是您缺少州列。你有两个选择。如果你想只拉一个状态,你可以把它放在这样的聚合中:
select max(state) , count(*) from infractions group by details -> 'commune';
如果你想按州分组,你可以:
select state , count(*) from infractions group by state, details -> 'commune';