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')。但它没有用。
任何意见/建议都将受到赞赏