存在一个数据库关系,其中一些记录由一个group_id组合。
<表类>
id
group_id
名称
…
tbody><<tr>1 row23 亚历克斯 … 2row15 迈克 … 3 row15 安迪 … 4row16 安娜 … 5row23 Max … 6row15 丽莎 … 表类>
用这个命令解决
Record.select('DISTINCT ON ("group_id") records.*').order(:group_id, 'records.id DESC')
现在我直接得到每组id
最高的记录。
你可以这样做:
Record.group(:group_id).maximum(:id)
输出为
{
'row23' => 5,
'row15' => 3,
'row16' => 4
}
更新:
拥有record
id,您可以在其他查询中使用它们
Record.where(id: Record.group(:group_id).maximum(:id).values)