ホームページ > データベース > mysql チュートリアル > SQL の複数の列に基づいて重複レコードを効率的に特定する方法

SQL の複数の列に基づいて重複レコードを効率的に特定する方法

Patricia Arquette
リリース: 2025-01-04 19:11:39
オリジナル
824 人が閲覧しました

How to Efficiently Identify Duplicate Records Based on Multiple Columns in SQL?

複数の列にわたる重複レコードの特定

課題は、提供された SQL コードの機能を複製することです。これは、特定して取得することを目的としています。 「名前」と「都市」という 2 つの列の組み合わせに基づいてレコードを重複させます。目標は、「name」または「city」のいずれか 1 つの列のみが一致するケースを除外し、両方の列が同一であるレコードのみを考慮することです。

この要件に対処するために、提供された回答ではサブクエリを利用してカウントします。 「stuff」テーブル内の「name」と「city」の両方の組み合わせの出現。このサブクエリは、「name」と「city」の両方でグループ化された行をカウントし、重複を示すカウントが 1 より大きいそれらの組み合わせを除外します。

select name, city, count(*) as qty
from [stuff]
group by name, city
having count(*) > 1
ログイン後にコピー

その後、メイン クエリは元の "stuff" テーブルに結合します。サブクエリの結果を使用して、「名前」と「都市」の両方に一致します。この結合操作は、指定された基準を満たす重複レコードを効果的に識別します。最終的な結果では、1 つの列のみが一致するケースを除外することで誤検知が排除されます。

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
ログイン後にコピー

その結果、クエリは目的の出力を正常に取得します。

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

このアプローチは、効率的な結果を提供します。また、複数の列に基づいて重複レコードを特定し、クエリ結果の正確性と完全性を保証する多用途のソリューションです。

以上がSQL の複数の列に基づいて重複レコードを効率的に特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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