異なる列値を持つ重複行の選択
このデータベース クエリは、他の列の値を無視しながら、特定の列に基づいて重複行を識別することを目的としています。列。次のシナリオを考えてみましょう。
------ ------ </p> <table> <thead><tr> <th>ARIDNR</th> <th>LIEFNR</th> </tr></thead> <tbody> <tr> <td>1</td> <td>A</td> </tr> <tr> <td>2</td> <td>A</td> </tr> <tr> <td>3</td> <td>A</td> </tr> <tr> <td>1</td> <td>B</td> </tr> <tr> <td>2</td> <td>B</td> </tr> </tbody> </table> <p>
目的は、異なる LIEFNR 値を持つ複数回出現する ARIDNR 値を選択することです。
解決策
これを達成するには、以下を利用できます。 query:
SELECT * FROM Table WHERE ARIDNR IN ( SELECT ARIDNR FROM Table GROUP BY ARIDNR HAVING COUNT(DISTINCT LIEFNR) > 1 )
このクエリは、ネストされたサブクエリを使用して、指定された基準を満たす ARIDNR 値を識別します。サブクエリは ARIDNR ごとに行をグループ化し、各 ARIDNR に関連付けられた一意の LIEFNR 値の数を計算する COUNT(DISTINCT LIEFNR) 関数を適用します。カウントが 1 を超える場合、ARIDNR は一時テーブルに追加されます。
その後、メイン クエリは、ARIDNR 値がサブクエリで識別された値と一致するすべての行を元のテーブルから選択します。これにより、目的の出力が得られます。
------ ------ </p> <table> <thead><tr> <th>ARIDNR</th> <th>LIEFNR</th> </tr></thead> <tbody> <tr> <td>1</td> <td>A</td> </tr> <tr> <td>1</td> <td>B</td> </tr> <tr> <td>2</td> <td>A</td> </tr> <tr> <td>2</td> <td>B</td> </tr> </tbody> </table> <p>
このメソッドは、さまざまな LIEFNR 値を持つ重複行を効果的にキャプチャし、最初の要件を満たします。
以上が特定の列で異なる値を持つ重複行を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。