私はこのようなテーブルを持っています:
table: searches
+------------------------------+
| id | address | date |
+------------------------------+
| 1 | 123 foo st | 03/01/13 |
| 2 | 123 foo st | 03/02/13 |
| 3 | 456 foo st | 03/02/13 |
| 4 | 567 foo st | 03/01/13 |
| 5 | 456 foo st | 03/01/13 |
| 6 | 567 foo st | 03/01/13 |
+------------------------------+
そして、次のような結果セットが必要です。
+------------------------------+
| id | address | date |
+------------------------------+
| 2 | 123 foo st | 03/02/13 |
| 3 | 456 foo st | 03/02/13 |
| 4 | 567 foo st | 03/01/13 |
+------------------------------+
しかし、ActiveRecord はこの結果を達成できないようです。これが私が試していることです:
- モデルには「most_recent」スコープがあります:
scope :most_recent, order('date_searched DESC')
Model.most_recent.uniq
完全なセット ( ) を返します。SELECT DISTINCT "searches".* FROM "searches" ORDER BY date DESC
明らかに、クエリは私が望んでいることを実行しませんが、1 つの列だけを選択することもありません。すべての列が必要ですaddress
が、結果セットで一意の行のみが必要です。- のようなこともできます
Model.select('distinct(address), date, id')
が、それは...間違っていると感じます。