私は訪問(人、訪問タイプ、日付、...)のテーブルを持っています。訪問タイプと人でグループ化し、MAX(日付)を持つ各グループのレコードを選択したいと思います。SQL を書くのではなく、クエリ代数を使用して簡単にする必要があると確信していますが、それを機能させることはできません。私はそれが次のようなものになると思いました:
Visit.group(:visit_type, :person).having("date = MAX(date)")
しかし、それは各グループから単一のレコードを選択するわけではありません。
編集:ああ!もう少し調査した後、上記が機能することがわかりました!わーい!
編集:ああ!sqlite と mySql では機能しますが、postgres では機能しません。これは、標準に従って group_by 関数のより厳密な実装に関係しています。ブー、ゴミ!これは、私がまだ答えを探していることを意味します。
編集: sqlite で毎回正しい結果が得られるとは思いません。