oracle 去除重复数据

0
一个数据有 姓名 name 电话号码 number 身份证 CARD_NO
其中name, CARD_NO不可能为空,电话号码有可能为空,我想根据name 和CARD_NO 进行group by 取电话号码,如下图

图片.png

 
保留ID=1 and(3、4任取一个)and(5、6、7任取一个)and 8 and 9 这样的sql怎么写呀
delect  FROM DW_PRD_PERSON_Z  A
 WHERE (A.NAME, A.CARD_NO)  IN
       (SELECT B.NAME, B.CARD_NO
          FROM DW_PRD_PERSON_Z  B
         GROUP BY B.NAME, B.CARD_NO
        HAVING COUNT(*) > 1)
and  .....后面不知道怎么写
 

 
 
 
 
已邀请:
0

老头子 - 专注是唯一的捷径 2015-11-05 回答

delect FROM DW_PRD_PERSON_Z A
 WHERE rowid IN
 (select rowid from (
 select rowid,
 row_number() over (partition by NAME,CARD_NO order by id desc) row_number
 from DW_PRD_PERSON_Z) where id <> 1)
0

- 取是能力,舍是境界 2015-11-05 回答

这类的问题百度下全是答案,搜索关键字:oracle 删除重复数据
 
http://www.uncletoo.com/html/oracle/1101.html

要回复问题请先登录注册