同じデータが誤って 2 回挿入されたテーブルがあり、ほとんどの (すべてではない) 行がテーブルに 2 回表示されます。簡単に言えば、行の 1 つのバージョンを削除し、もう 1 つのバージョンを保持する SQL ステートメントが必要です。それらは同一であるため、どのバージョンが削除されてもかまいません。
テーブル構造は次のようなものです。
FID、unique_ID、COL3、COL4....
Unique_ID
は主キーです。つまり、それぞれが 1 回だけ表示されます。
FID
は各機能に固有のキーであるため、複数回表示される場合は重複を削除する必要があります。
重複する機能を選択するには、次のようにします。
select count(*) from TABLE GROUP by FID
残念ながら、そこから余分な行を削除してそれぞれを 1 つだけ残す SQL delete ステートメントに移行する方法がわかりません。
この種の質問は以前に尋ねられ、distinct で create table を試しましたが、名前を付けずにすべての列を取得するにはどうすればよいですか? これは単一の列 FID のみを取得し、保持するすべての列を項目化すると、次のようになります。ORA-00936: missing expression
CREATE TABLE secondtable NOLOGGING as select distinct FID from TABLE