当前位置: 代码迷 >> Oracle管理 >> 两个表去重,该怎么解决
  详细解决方案

两个表去重,该怎么解决

热度:387   发布时间:2016-04-24 04:03:29.0
两个表去重
本帖最后由 lubyam 于 2015-06-03 12:21:47 编辑
我有两个表a, b
其中a表中的id 是和b表中的ori_id是一样的。
a表中的txdate和b表中的txdate有的一样,有的记录不一样,

select a.hh,a.zh,a.txdate ,a.id from a, b where a.id=b.id and a.txdate='20150603'

hh              zh            txdate            id
6841 10002000 20150602 L2015052900038663               
6841 10002000 20150603 L2015052600038644               
6841 10002000 20150603 L2015060100038673               
我想让a表中的hh,zh,txdate二个字段 作为去重的条件。


我想查询出来这样的结果
hh              zh              txdate            id
6841 10002000 20150602 L2015052900038663               
6841 10002000 20150603 L2015052600038644               

------解决思路----------------------
要删除重复记录?重复的时候,删除哪条?两表中都要删?
------解决思路----------------------
大概如下,未测试 
with m as (
select?a.hh,a.zh,a.txdate?,a.id?,
row_number() over(partition by hh,zh,txdate order by id) rn 
from?a,?b?where?a.id=b.id?and?a.txdate='20150603'
)
select t* from where rn = 1
 
  相关解决方案