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

angryTom
リリース: 2020-02-29 10:37:46
オリジナル
8418 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!