Oacle 중복 데이터 제거

의 원리
id, count (id) 에 따라 무 거 운 id 를 제거 하고 id 를 제거 해 야 합 니 다.
구체 적
select * from 표 이름 where id not in (select id, count (id) from 표 이름 group by id having count (id) > 1)
물론 표 이름 도 결과 집 으로 할 수 있 습 니 다.
select  *  from (
with t AS (
SELECT id,pqmc,to_char(pqdd) AS aa from uf_pqjzb WHERE pqdd IS NOT NULL --AND ID ='57' 
)
select id,pqmc,regexp_substr(aa, '[^,]+', 1, level) as pqdd
 
from t 
 
connect by level <= regexp_count(aa, '\,\') + 1
 
and aa = prior aa
 
and prior dbms_random.value > 0

)  a where a.pqdd NOT in (SELECT pqdd FROM (
with t AS (
SELECT id,pqmc,to_char(pqdd) AS aa from uf_pqjzb WHERE pqdd IS NOT NULL --AND ID ='57' 
)
select id,pqmc,regexp_substr(aa, '[^,]+', 1, level) as pqdd
 
from t 
 
connect by level <= regexp_count(aa, '\,\') + 1
 
and aa = prior aa
 
and prior dbms_random.value > 0)  GROUP BY pqdd HAVING COUNT(pqdd)>1)

좋은 웹페이지 즐겨찾기