按id、名称从客户组中选择id、名称、最大值(修改时间)但我有所有的记录。
z31licg01#
结果得到整个表的原因是您按id和name分组。这意味着返回id和name的每个唯一组合。由于每个id的所有名称都不同,因此返回整个表。如果您想对每个id(或名称)进行最后一次修改,您应该只按id(或名称)分组。
20jt8wwn2#
id是唯一的,这意味着按id对它们进行分组将得到相同的表。我的建议是,按“modify\u time”降序排列表格,并将结果限制为1(可能类似于以下内容):
Select id, name modify_time from customer ORDER BY modify_time DESC limit 1
w3nuxt5m3#
order by modify \u time desc并使用row \u number为id、name组合的行编号。然后选择row \u 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
3条答案
按热度按时间z31licg01#
结果得到整个表的原因是您按id和name分组。这意味着返回id和name的每个唯一组合。由于每个id的所有名称都不同,因此返回整个表。
如果您想对每个id(或名称)进行最后一次修改,您应该只按id(或名称)分组。
20jt8wwn2#
id是唯一的,这意味着按id对它们进行分组将得到相同的表。
我的建议是,按“modify\u time”降序排列表格,并将结果限制为1(可能类似于以下内容):
w3nuxt5m3#
order by modify \u time desc并使用row \u number为id、name组合的行编号。然后选择row \u number=1的每个组合