可能性の重複:私たちは、ほとんどの(すべてではない)の行を意味する事故によって2回、それに挿入された同じデータを持っていたテーブルを持っている
Oracle Delete Rows Matching On Multiple ValuesOracleデータベースから重複行を削除する方法は?
テーブルに二回表示されます。簡単に言えば、私は、SQLステートメントは、行の1つのバージョンを削除し、他のバージョンを削除したいと思います。私はそれらが同一であるので削除されるバージョンは気にしない。
表構造のようなものです:
FID、UNIQUE_ID、COL3、COL4 ....
Unique_ID
は、それぞれが一度だけ表示されます意味、主キーです。 FID
は各機能に固有のキーなので、複数表示される場合は重複を削除する必要があります。重複を持っている機能を選択する
は次のようになります。
select count(*) from TABLE GROUP by FID
残念ながら、私は一つだけ、それぞれのを残して余分な行を削除するSQL DELETEステートメントにそれから行く方法を見つけ出すことはできません。
このような質問が以前からありましたが、私は別のテーブルを作成しようとしましたが、名前を付けずにすべての列を取得する方法はありますか?これは、単一の列FIDを取得し、維持するためにすべての列をitemisingすることはできます:ORA-00936: missing expression
CREATE TABLE secondtable NOLOGGING as select distinct FID from TABLE
ソリューションを入手した後、重複レコード(いわゆる冗長性)が正規化されていないデータベースの結果である可能性が高いため、データベースを正規化することをお勧めします。 – Kushal
@Kush - 多くの異なるアプリケーションで使用されているため、データベースを正規化することはできません。これは、2007年にデータを2回読み込んだ結果ですが、これをあまり使用しないため、以前は気付かなかったのです。しかし、提案に感謝 –