ホームページ  >  記事  >  データベース  >  Oracleで重複データをクエリする方法

Oracleで重複データをクエリする方法

WBOY
WBOYオリジナル
2022-02-28 11:13:5239533ブラウズ

Oracle では、select クエリ ステートメントで count() 関数を使用して、繰り返しデータをクエリできます。構文は、「count(userCode)>1 を持つ userCode によってユーザー グループから userCode を選択する」です。

Oracleで重複データをクエリする方法

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle で重複データをクエリする方法

1. テーブル内の重複した重複レコードを検索します。重複レコードは 1 つのフィールド (userCode) に基づいて判断されます

select 
    * 
from 
    user
where 
    userCode
in 
    (select  userCode  from  user group by  userCode having count (userCode) > 1)

2。テーブルを削除します。重複レコードは単一のフィールド (userCode) に基づいて判断され、最小の rowid を持つレコードのみが残ります。

delete from 
    user 
where 
    userCode 
in 
    (select userCode from user group by  userCode having count (peopleId) > 1)
and rowid not in 
    (select min(rowid) from   user group by userCode having count(userCode)>1)

3。テーブル内の余分な重複レコード (複数のフィールド) を検索します。

select 
    * 
from 
    user a
where 
    (a.userCode,a.userName) 
in  
    (select userCode,userName from user group by userCode,userName having count(*) > 1)

4. テーブル内の冗長な重複レコード (複数のフィールド) を削除し、最小の ROWID を持つレコードのみを残します

delete from 
    user a
where
    (a.userCode,a.userName) 
in   
    (select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
    (select min(rowid) from user group by userCode,userName having count(*)>1)

5. ROWID を除く、テーブル内の冗長な重複レコード (複数のフィールド) を検索します 最小のレコード

select 
    * 
from 
    user a
where 
    (a.userCode,a.userName)  
in   
    (select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
    (select min(rowid) from user group by userCode,userName having count(*)>1)

推奨チュートリアル: 「Oracle ビデオ チュートリアル

以上がOracleで重複データをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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