테이블에서 중복 된 (부분) 삭제에 도와 주시겠습니까? 다섯 개의 열이 포함 된 표가 있습니다. 그리고이 표에는 복제본이 있습니다. 단 4 개의 열만 같고 하나의 열 (field5)이 다릅니다. 즉,오라클 SQL - 환경 설정으로 부분 복제본을 삭제하는 방법
F1 F2 F3 F4 F5
A1 A2 A3 A4 103
A1 A2 A3 A4 3
따라서 복제본의 경우 5 열을 제외하고는 4 열/필드가 동일합니다. 그리고 "103"이라는 숫자가 포함 된 행을 지우고 싶습니다. 이것을 어떻게 할 수 있습니까?
정상적인 복제본이라면 max (rowid)를 사용하고 해당 행을 제거하면됩니다. 하지만 이제는 더 높은 숫자 대신 낮은 숫자가 포함 된 행을 삭제할 수 있습니다.
내가 생각할 수있는 한 가지 방법은 중복 된 행을 포함하는 새 테이블을 만드는 것입니다. Field5는이 테이블에서 더 높은 번호를 갖습니다. 그런 다음이 새 테이블과 비교하여 원본 테이블에서 행을 삭제합니다. 하지만 그게 나에게 좋은 해결책이 아닌 것 같습니다. 특히 원본 테이블이 크다면 시간이 오래 걸릴 수 있습니다.
도움을 주시면 감사하겠습니다. 고맙습니다.
ORA-01446 : DISTINCT, GROUP BY 등에서 ROWID를 선택하거나 샘플을 선택할 수 없습니다. 그러나 ROWNUM을 제거하면 작동합니다. – Littlefoot
게시물에 대해 감사드립니다. 이것은 완벽하게 작동합니다. 이전 게시물에서 Littlefoot가 지정한 오류가 발생했습니다. 내가 선택할 수 있다면, 이것은 나를위한 최상의 해결책이 될 것입니다 :) –