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