3

私はSQLの経験があまりありません。[ ] と [ ]TABLE_Aの値が等しいテーブル [ ] の行を手動で編集する必要があります。テーブルの編集ビューをフィルター処理する方法は既に知っていますが、必要なのは適切なクエリだけです。COLUMN_1COLUMN_2

例:

   COLUMN_1 COLUMN_2 COLUMN_3
    A       100       3
    C       354       2
    A       999       3
    A       100       1
    C       255       1
    B       600       5
    B       600       5
    B       600       7

行 1、4、6、7、および 8 を返すクエリが必要です。したがって、次のようなテーブルが返されるはずです。

   COLUMN_1 COLUMN_2 COLUMN_3
    A       100       3
    A       100       1
    B       600       5
    B       600       5
    B       600       7

私はグーグルを試しましたが、これは私が得ることができる最も近いものなので、これは私が今していることですが、私が必要とするものではありません.

SELECT COLUMN_1, COLUMN_2, COUNT(*) AS TotalCount
  FROM TABLE_A
 GROUP BY COLUMN_1, COLUMN_2
HAVING (COUNT(*) > 1)
 ORDER BY TotalCount DESC

このクエリの問題は、個々の行が返されないことです。次のようなものが返されます。

   COLUMN_1 COLUMN_2 TotalCount
    A       100        2
    B       600        3
4

1 に答える 1

3

これはウィンドウ関数で行うことができます-

;WITH CTE AS
(   SELECT  Column_1, 
            Column_2, 
            Column_3, 
            COUNT(*) OVER(PARTITION BY Column_1, Column_2) AS TotalDupes
    FROM    Table_A
)
SELECT  *
FROM    CTE
WHERE   TotalDupes > 1
于 2012-09-18T14:10:31.667 に答える