Oracle 重複排除クエリ方法は次のとおりです:
Oracle データベースのマルチフィールド重複排除
方法の紹介: 個別のキーワード、グループ化、row_number ()over (列の順序による列の説明によるパーティション化)
私の要件は、特定の列に基づいて重複排除後にすべての情報をクエリすることです。結局、私は3番目の方法を選択しました。
私のアイデア: 重複排除クエリを実装するより簡単な方法を見つけたいと考えています。ダイレクトであればあるほど良いです。
テーブル構造 &&コンテンツ
##1. 個別のキーワードの使用: 個別のキーワードの後のフィールドの組み合わせは重複を排除する必要があります。 id from testResult; id に基づく重複排除select unique id, name from testResult: ID と名前の組み合わせに基づく重複排除 (id | と同様) | name この方法で重複を削除します)2. グループごとにグループ化して重複を削除します
ID、名前でテスト グループから ID、名前を選択します結果: ID、名前の組み合わせに基づく重複排除 ##3、row_number ()over(partition by columns order by columns asc | desc)メソッド3.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 と性別に基づく重複排除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で重複したクエリを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。