使用rails中的group检索不同的最近记录

时间:2015-10-08 06:34:53

标签: sql ruby-on-rails-4

H,

我有一张桌子,我正在尝试获取最新的3笔交易。该表有2个金额字段,我需要通过查看两个金额字段来显示最大值3。 场景1:如果2条记录具有相同的金额,那么我应该只获得一条最近的记录。

我有工作查询,但问题是我在相同金额字段的情况下没有得到最近的记录,而是我得到旧记录。

Transactions
id    expense_amt   income_amt    transaction_type
1     100           NULL           1
2     200           NULL           3
3     NULL          400            1
4     NULL          800            2
5     1000          NULL           1

因此,最大3的输出将是[1000,800,400]的记录 以下是我的rails查询

Model.select("(COALESCE(expense_amt, 0) + COALESCE(income_amt, 0)) AS combined_amt, id, transaction_type")
.group("combined_amt")
.order("combined_amt DESC")
.limit(3)
.map{|row| row["combined_amt"]}
end

但是这个查询返回了最大的3个旧记录。我试过了 .group()之前的.max('id')。但它没有用。

任何意见/建议都将受到赞赏

0 个答案:

没有答案