如何选择最近的记录

pcrecxhr  于 2021-06-26  发布在  Hive
关注(0)|答案(3)|浏览(363)


按id、名称从客户组中选择id、名称、最大值(修改时间)
但我有所有的记录。

z31licg0

z31licg01#

结果得到整个表的原因是您按id和name分组。这意味着返回id和name的每个唯一组合。由于每个id的所有名称都不同,因此返回整个表。
如果您想对每个id(或名称)进行最后一次修改,您应该只按id(或名称)分组。

20jt8wwn

20jt8wwn2#

id是唯一的,这意味着按id对它们进行分组将得到相同的表。
我的建议是,按“modify\u time”降序排列表格,并将结果限制为1(可能类似于以下内容):

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

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

相关问题