ホームページ >データベース >mysql チュートリアル >SQL で重複 ID と一意の列値を持つ行を選択する方法

SQL で重複 ID と一意の列値を持つ行を選択する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-27 05:20:15995ブラウズ

How to Select Rows with Duplicate IDs and Unique Column Values in SQL?

重複 ID と異なる列値を持つ行の抽出

クエリ:

続くtable:

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 2     | A     |
+------+------+
| 3     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | B     |
+------+------+

目標は、ARIDNR 列に重複値があり、LIEFNR 列に個別の値があるすべての行を取得することです。

解決策:

このクエリを効果的に実行するには、次の手順に従ってくださいステップ:

SELECT *
FROM Table
WHERE ARIDNR IN (
    SELECT ARIDNR
    FROM Table
    GROUP BY ARIDNR
    HAVING COUNT(DISTINCT LIEFNR) > 1
)

説明:

このクエリは、サブクエリを利用して、複数回発生する ARIDNR を識別します。外側のクエリでは、識別された ARIDNR を持つすべての行を取得します。

  1. サブクエリ:

    • ARIDNR によって行をグループ化します。
    • HAVING 句は、複数の異なる値を持つ ARIDNR をフィルタリングします。 LIEFNR 値。
  2. 外部クエリ:

    • メイン クエリはテーブルをフィルタリングして、ARIDNR が条件を満たす行のみを含めます。サブクエリ条件。

結果:

クエリの出力は次のようになります:

+------+------+
| ARIDNR | LIEFNR |
+------+------+
| 1     | A     |
+------+------+
| 1     | B     |
+------+------+
| 2     | A     |
+------+------+
| 2     | B     |
+------+------+

この結果重複した ARIDNR と異なる LIEFNR 値を持つすべての行を正常にキャプチャします。

以上がSQL で重複 ID と一意の列値を持つ行を選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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