Rails 中从 SQlite 到 PostgreSQL 的 group(...) 错误
Error with group(...) from SQlite to PostgreSQL in Rails
我正在尝试将我的应用程序上传到 heroku,但在以下语句中出现错误:
@exhibition.enrolments.select(:id).group('payment_id')
ActiveRecord::StatementInvalid (PG::GroupingError: ERROR: column "enrolments.id" must appear in the GROUP BY clause or be used in an aggregate function
在 SQlite 中我没有任何错误,但在生产中我有错误。
问题是:我有这个:
enrolment_id | payment_id | ....
1 | 1 | ....
2 | 1 | ....
3 | 2 | ....
4 | 3 | ....
5 | 3 | ....
我想获取注册 ID 2,3 和 4。
我也试过这个:
@exhibition.enrolments.select(:id).group('enrolment.id, payment_id')
它有效,但它只是给了我所有条目,显然...
我看了很多关于这个的帖子,但我没有得到解决方案...
有什么帮助吗?谢谢。
编辑:
我的意思是:
And I want to get the enrolments' ids 2,3 and 5.
同id的每个支付块最大enrolment_id
谢谢弗兰克海肯斯
所以给它想要的聚合函数?
@exhibition.enrolments.select(:id).group('payment_id').max(:id)
或者,您可以对记录进行排序并使用 distinct
@exhibition.enrolments.order('payment_id DESC').select(:payment_id).distinct
我正在尝试将我的应用程序上传到 heroku,但在以下语句中出现错误:
@exhibition.enrolments.select(:id).group('payment_id')
ActiveRecord::StatementInvalid (PG::GroupingError: ERROR: column "enrolments.id" must appear in the GROUP BY clause or be used in an aggregate function
在 SQlite 中我没有任何错误,但在生产中我有错误。
问题是:我有这个:
enrolment_id | payment_id | ....
1 | 1 | ....
2 | 1 | ....
3 | 2 | ....
4 | 3 | ....
5 | 3 | ....
我想获取注册 ID 2,3 和 4。
我也试过这个:
@exhibition.enrolments.select(:id).group('enrolment.id, payment_id')
它有效,但它只是给了我所有条目,显然...
我看了很多关于这个的帖子,但我没有得到解决方案...
有什么帮助吗?谢谢。
编辑:
我的意思是:
And I want to get the enrolments' ids 2,3 and 5.
同id的每个支付块最大enrolment_id
谢谢弗兰克海肯斯
所以给它想要的聚合函数?
@exhibition.enrolments.select(:id).group('payment_id').max(:id)
或者,您可以对记录进行排序并使用 distinct
@exhibition.enrolments.order('payment_id DESC').select(:payment_id).distinct