生产需求
应生产环境要求,需要获取到每个id的最新位置及其他GL属性
ROW_NUMBER函数
ROW_NUMBER()函数是一种窗口函数,可以根据指定的列对结果集中的行进行编号。通过结合PARTITION BY子句和ORDER BY子句,ROW_NUMBER()函数能够对数据进行分组排序,并为每个分组中的行分配一个唯一的数字序号。
代码:
select *from(select *,row_number() over (partition by `id` order by `time` desc ) as rankfrom `table1`) where rank = 1-- by_https://blog.csdn.net/qq_52128187?spm=1010.2135.3001.5343
代码逻辑:
首先使用ROW_NUMBER()函数对表中的数据按照ID进行分区(partition by id
),然后按时间降序排序(order by time
desc)。这样就创建了一个排名(rank),每个ID组内的第一行将获得排名1,第二行将获得排名2,依此类推。接着,外层查询选择了排名为1的行,即每个ID的最新记录