Oracle去重 并按时间排序取第一条

本文介绍两种SQL查询技巧,用于根据特定ID进行记录去重,确保选取每组中最新创建的记录。第一种方法使用窗口函数ROW_NUMBER()结合子查询,第二种方法通过内连接和聚合函数MAX()实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

按图所示,根据gfwtf_id 去重,并去重的条件是去最新创建的一条
在这里插入图片描述

  • 第一种实现方法:
select  t.*  
   from (select a.*, row_number() over(partition by 需要分组的字段 order by 更新时间 desc) rw  
           from 表 a) t  
  where t.rw = 1  
  • 第二种实现方法:
select * from 表名 a  inner join (select gfwtf_id,max(时间)  时间 from 表名group by  需要分组的字段 ) b on a. 需要分组的字段 =b. 需要分组的字段  and a.时间 =b.时间
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值