ホームページ >データベース >mysql チュートリアル >SQL Server で重複する行の ID を検索して取得する方法

SQL Server で重複する行の ID を検索して取得する方法

DDD
DDDオリジナル
2024-12-28 20:37:10311ブラウズ

How to Find and Retrieve IDs of Duplicate Rows in SQL Server?

関連付けられた ID を持つ SQL Server での重複行の検索

大規模なデータセットを扱う場合、重複行が発生することは珍しくありません。 SQL Server では、データの整合性を確保し、記憶域スペースを最小限に抑えるために、これらの重複を特定して削除することが重要です。この記事では、SQL Server データベースで重複行を検索し、関連付けられた ID を取得する方法に関する包括的なガイドを提供します。

重複行の特定

最初のステップは次のとおりです。重複する行を特定します。これは、特定の列に基づいて行をグループ化し、各グループの出現数をカウントすることで実現できます。カウントが 1 より大きい行は重複とみなされます。

元のクエリ

SELECT orgName, COUNT(*) AS dupes
FROM organizations
GROUP BY orgName
HAVING COUNT(*) > 1;

このクエリは次の出力を生成します:

| orgName | dupes |
|-------------------|-------|
| ABC Corp | 7     |
| Foo Federation | 5     |
| Widget Company | 2     |

関連付けられた ID の取得

取得するには関連付けられた ID を使用すると、内部結合句を使用して、共通の列に基づいて 2 つのテーブルをマージできます。この場合、重複数を計算するサブクエリを使用して組織テーブルを結合できます。

変更されたクエリ

select o.orgName, oc.dupeCount, o.id
from organizations o
inner join (
    SELECT orgName, COUNT(*) AS dupeCount
    FROM organizations
    GROUP BY orgName
    HAVING COUNT(*) > 1
) oc on o.orgName = oc.orgName;

この変更されたクエリにより、次の出力が生成されます。

| orgName | dupeCount | id |
|-------------------|-------|---|
| ABC Corp | 1 | 34 |
| ABC Corp | 2 | 5 |
| ... | ... | ... |
| Widget Company | 1 | 10 |
| Widget Company | 2 | 2 |

この結果は、重複数と各重複組織の関連 ID の両方を提供します。この情報は、重複するユーザー レコードを手動で結合したり、さらなるデータ管理タスクに使用したりできます。

以上がSQL Server で重複する行の ID を検索して取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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