2

データベースは次のようなものです。

id testID date
1  100    10/12/2012
2  100    10/13/2012
3  102    10/14/2012

このデータベースを「テスト」と呼びましょう

出力を以下を含むActiveRecord:Relationにしたい

id testID date
2  100    10-13-2012
3  102    10-14-2012

次のように、結果を配列として取得する方法を知っています。

result = []
testIDList = Test.uniq.pluck(:testID)
testIDList.each do |tID|
    result = result + Test.where(:testID => tID).order('date DESC').limit(1)
end

この場合、結果はActiveRecord:Relationの配列ですが、結果をActiveRecord:Relationにしたいので、mergeを使用しようとしましたが成功しませんでした。

4

2 に答える 2

1

試す

   result = Test.order(:date).group(:testID)
于 2012-10-04T05:46:10.910 に答える
0

これを試して:

result = Test.where(:testID => testIDList)
             .select("max(`date`) as recent_date").group(:testID)
于 2012-10-04T05:24:30.297 に答える