oracle SQL 去重取最大值

项目开发功能进入修改bug阶段,偶尔会做一两个新功能,所以技术上的东西学习就少了都是技术的巩固。
项目中遇到一个小问题:在一个表中要取客户重复提交的数据,多个客户可以同时提交数据,根据3个条件查询这些客户每个人提取的最新记录。
开始想使用distinct去掉重复的值,distinct倒是可以去掉重复的值,但是我还需要拿到这个表的主键id,这样distinct就不支持了。
  
   distinct语句中select显示的字段只能是distinct指定的字段,其他字段是不可能出现的。所以只能换一种思路了,我要查询数据的表示主键是自增长的sequence,这样就保证每次提交的新数据主键id都是最大的,所以可以通过分组并取最大值来获取客户提交的数据
蓝色部分就是叙述的内容:


select * from T_RESPONSE_INFO t where t.response_id in( select
max(response_id) from T_RESPONSE_INFO res
 where res.PRICE_TYPE = '02'
           and res.SECTION_ID = '81'
           and res.SUBMIT_STATUS = '02' group by res.tenders_id
) order
by t.create_time  

这样就能获取每个客户最新的提交记录,东西比较简单,主要是熟悉distinct和group的用法,n就没用过了 再熟悉熟悉。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值