ホームページ  >  記事  >  データベース  >  Oracle は重複データを削除し、最初のレコードを保持します

Oracle は重複データを削除し、最初のレコードを保持します

angryTom
angryTomオリジナル
2020-02-29 10:37:468409ブラウズ

Oracle は重複データを削除し、最初のレコードを保持します

#oracle は重複データを削除し、最初のレコードを保持します

1. テーブル内の冗長な重複レコードを見つけます。重複レコードは、単一のフィールド (Id) で判定します。

select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)

2。テーブル内の重複する重複レコードを削除します。重複レコードは単一のフィールド (Id) に基づいて判定され、最小の rowid

DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);
# を持つレコードのみが残ります。 ##3. テーブル内の冗長な重複レコード (複数のフィールド) を検索します

select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)
##4. テーブル内の冗長な重複レコード (複数のフィールド) を削除し、最小の ROWID を持つレコードのみを残します

delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)

5. 検索 テーブル内の冗長な重複レコード (複数フィールド) には、最小の rowid を持つレコードは含まれません

select * from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count(*) > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count(*)>1)

PHP 中国の Web サイトには、多数の無料の

SQL チュートリアル

があります。 、どなたでもぜひ学んでください!

以上がOracle は重複データを削除し、最初のレコードを保持しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。