sql 多组条数据取最新的一条数据

数据如下图 ,id1即user_id 字段有多组数据,我们只需要每个 user_id 的最新一条数据
这里写图片描述
方式:ROW_NUMBER() OVER
具体是 使用 – ROW_NUMBER() OVER ( PARTITION BY tlt.user_id order by tlt.handle_time desc) rowNum 来区分,从而获取最新数据

具体实现

SELECT * FROM (
SELECT tlt.longitude, tlt.latitude,u.*,ROW_NUMBER() OVER ( PARTITION BY tlt.user_id order by tlt.handle_time desc) rowNum 
 from t_location tlt LEFT JOIN t_user u on tlt.user_id = u.id
where u.org_id in (64 ,67) ) as temp 
where TEMP.rowNum = 1 

这里写图片描述

亲测可用,不用感觉很麻烦,但是这个好像解决这个问题较为有效的方式,其实将各部分替换一下就好了。partition by 后面就是根据什么分组,order by后面是根据什么来排序,可以增加多个,直接and后面加条件就行了。注意别忘了rowNum,这个是表的名字,注意最后的where TEMP.rowNum=1别忘了。

引自https://blog.csdn.net/phn555/article/details/76033187?locationNum=10&fps=1

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值