ホームページ > データベース > mysql チュートリアル > SQL で複数の列にわたる重複行を見つける方法

SQL で複数の列にわたる重複行を見つける方法

Patricia Arquette
リリース: 2025-01-03 16:14:39
オリジナル
886 人が閲覧しました

How to Find Duplicate Rows Across Multiple Columns in SQL?

複数の列にわたる重複の検索

SQL では、複数の列にわたって重複する値を持つ行を識別する必要がある状況が発生することがあります。 ID、名前、都市などの列を含む「stuff」というテーブルがあるとします。 name 列と city 列の両方で同じ値を持つ行を検索したいとします。

SQL クエリ

これを実現するには、次の SQL を利用できます。クエリ:

select s.id, t.* 
from [stuff] s
join (
    select name, city, count(*) as qty
    from [stuff]
    group by name, city
    having count(*) > 1
) t on s.name = t.name and s.city = t.city
ログイン後にコピー

説明

  • メイン クエリ (s.id, t.* の選択) は、元のテーブル ([もの]) とサブクエリ (t) のすべての列。
  • サブクエリ (名前、都市、 count(*) as qty) は、テーブルを名前と都市でグループ化し、各ペアの出現数をカウントします。
  • having count(*) > 1 句はサブクエリをフィルタリングして、カウントが 1 より大きい名前と都市のペア (つまり、重複) のみを含めます。
  • 結合条件 (s.name = t.name および s.city = t.city で)名前と都市に基づいて元のテーブルをサブクエリにリンクし、その組み合わせが複数出現する行を選択します。

出力

このクエリは、重複する ID と名前と都市のペアを示す次の出力を返します:

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris
ログイン後にコピー

以上がSQL で複数の列にわたる重複行を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート