如何select最近的记录

how to select the most recent records

Select id, name , max(modify_time) 来自客户 按 id、名称分组

但我得到了所有记录。

ID 是唯一的,这意味着按 ID 对它们进行分组,结果相同 table。

我的建议是,按 "modify_time" 降序排列 table 并将结果限制为 1(可能类似于以下内容):

Select id, name modify_time from customer ORDER BY modify_time DESC limit 1

您得到整个 table 结果的原因是您按 ID 和名称分组。这意味着返回 id 和 name 的每个唯一组合。由于每个 id 的所有名称都不同,因此返回整个 table。

如果你想要每个 id(或名称)的最后修改,你应该只按 id(或名称)分组。

按 modify_time desc 排序并使用 row_number 为 id,name combination.Then select 的行编号 row_number = 1

select id,modify_time,name
from (
        select id,modify_time,name,row_number() over(partition by id order by modify_time desc) as r_no
        from customer
     ) a
where a.r_no=1