ANSI SQLを使用して重複する行の数をカウントする方法


ANSI SQLを使用して重複する行の数をカウントするには、いくつかの方法があります。以下にいくつかのコード例を示します。

  1. COUNTとGROUP BYを使用する方法:

    SELECT column1, column2, COUNT(*) as count
    FROM table_name
    GROUP BY column1, column2
    HAVING COUNT(*) > 1;

    このクエリでは、table_nameというテーブルからcolumn1column2の組み合わせでグループ化し、重複する行の数をカウントしています。HAVING句を使用して、カウントが1より大きい行のみを返します。

  2. サブクエリを使用する方法:

    SELECT column1, column2, (
    SELECT COUNT(*)
    FROM table_name t2
    WHERE t1.column1 = t2.column1 AND t1.column2 = t2.column2
    ) as count
    FROM table_name t1
    WHERE (
    SELECT COUNT(*)
    FROM table_name t2
    WHERE t1.column1 = t2.column1 AND t1.column2 = t2.column2
    ) > 1;

    このクエリでは、サブクエリを使用して重複する行の数をカウントしています。外部クエリでテーブルを参照し、サブクエリ内で同じ値を持つ行の数をカウントします。HAVING句を使用して、カウントが1より大きい行のみを返します。