oracle 去除重复数据
0
一个数据有 姓名 name 电话号码 number 身份证 CARD_NO
其中name, CARD_NO不可能为空,电话号码有可能为空,我想根据name 和CARD_NO 进行group by 取电话号码,如下图
保留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 .....后面不知道怎么写
其中name, CARD_NO不可能为空,电话号码有可能为空,我想根据name 和CARD_NO 进行group by 取电话号码,如下图
保留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 .....后面不知道怎么写
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
2 个回复
老头子 - 专注是唯一的捷径 2015-11-05 回答
赞同来自:
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)
悟 - 取是能力,舍是境界 2015-11-05 回答
赞同来自:
http://www.uncletoo.com/html/oracle/1101.html