如何查找重复的字段组合

Pet*_*aud 0 t-sql sql-server sql-server-2005

我有一个包含 id、a 和 b 列的表。

a+b 应该是唯一的,但这是一个未正确约束的遗留数据库。如何获取 a+b 不唯一的记录的一组 id?

如果我有

ID A B
1  2 3
2  2 3
3  1 3
4  1 4
Run Code Online (Sandbox Code Playgroud)

然后我想从查询中获取记录 1 和 2。

Ada*_*son 5

select
    id, a, b

from your_table t

join (select a, b from your_table group by a, b having count(1) > 1) dup on dup.a = t.a and dup.b = t.b
Run Code Online (Sandbox Code Playgroud)