我有这样的数据库表结构:
id | currency_list_id | direction_id |价值|的updated_at
我有这样的数据:
1 | 1 | 1 | 8150 | 09-08-2010 01:00:00
1 | 1 | 2 | 8250 | 09-08-2010 01:00:00
1 | 2 | 1 | 8150 | 06-08-2010 01:00:00
1 | 2 | 2 | 8150 | 06-08-2010 01:00:00
1 | 1 | 1 | 8150 | 09-08-2010 15:00:00
1 | 1 | 2 | 8250 | 09-08-2010 15:00:00
因此交换机中的货币几乎每天都被设置,并且可以在一天内设置多次......但也可以在几天前设置一个......而且我必须获取所有实际数据.. < / p>
如何在rails(ruby)中我只能获取最后的实际数据?
在我的示例中,结果将是:
1 | 2 | 1 | 8150 | 06-08-2010 01:00:00
1 | 2 | 2 | 8150 | 06-08-2010 01:00:00
1 | 1 | 1 | 8150 | 09-08-2010 15:00:00
1 | 1 | 2 | 8250 | 09-08-2010 15:00:00
怎么做?
我试试:
@currencies = CurrencyValue.find(:all, :conditions => {:currency_list_id => id}, :order => :updated_at)
但是接下来我将获取一些currency_list_id的所有数据,但是如何获取最后2个值?如何获取最后2个有序行?
答案 0 :(得分:1)
@currencies = CurrencyValue.find(:all, :conditions => {:currency_list_id => id, :order => :updated_at}).last(2)
我认为:)。现在无法检查。
答案 1 :(得分:0)
我认为你需要的是GROUP_BY
。还有一个问题在这里解释: