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

Oracleで重複したクエリを削除する方法

hzc
hzcオリジナル
2020-06-09 09:53:4230676ブラウズ

Oracleで重複したクエリを削除する方法

Oracle 重複排除クエリ方法は次のとおりです:

Oracle データベースのマルチフィールド重複排除

方法の紹介: 個別のキーワード、グループ化、row_number ()over (列の順序による列の説明によるパーティション化)

私の要件は、特定の列に基づいて重複排除後にすべての情報をクエリすることです。結局、私は3番目の方法を選択しました。

私のアイデア: 重複排除クエリを実装するより簡単な方法を見つけたいと考えています。ダイレクトであればあるほど良いです。

テーブル構造 &&コンテンツ

Oracleで重複したクエリを削除する方法

##1. 個別のキーワードの使用: 個別のキーワードの後のフィールドの組み合わせは重複を排除する必要があります。 id from test

Result; id に基づく重複排除

select unique id, name from test

Result: ID と名前の組み合わせに基づく重複排除 (id | と同様) | name この方法で重複を削除します)

2. グループごとにグループ化して重複を削除しますOracleで重複したクエリを削除する方法

ID、名前でテスト グループから ID、名前を選択します

結果: ID、名前の組み合わせに基づく重複排除

##3、row_number ()over(partition by columns order by columns asc | desc)メソッド

20170523141826007 (1).png3.1 row_number() over(order by column asc) まず列を昇順に並べ替えてから、各レコードのシーケンス番号を返します

3.2 row_number() over(partition by column1 order by column2 asc) まずcolumn1 でグループ化し、column2 に従ってグループ化されたデータを昇順に並べ替えます。

注: order by は必須です

例 select a.*,row_number() over(partition by a.id ,a.sex order by name) su from test a;

重複排除の例: ID と性別に基づく重複排除

Oracleで重複したクエリを削除する方法select id,name,sex from(

select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a )

where su=1

結果:

#私の要件は、特定の列に基づいて重複排除後のすべての情報をクエリすることです。

Oracleで重複したクエリを削除する方法推奨チュートリアル: 「

Oracle チュートリアル

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

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