我有一个查询可以获取表中的重复记录。见下文:
SELECT column1, column2
FROM table1
GROUP BY column1, column2
HAVING COUNT(column1 + column2) > 1
现在,我需要将column1和column2映射到其表 ID ,我无法在上面的查询中加入。我使用TSQL,我该怎么做?
答案 0 :(得分:0)
此代码用于获取ID:
SELECT Id FROM table1 INNER JOIN
(
SELECT column1, column2
FROM table1
GROUP BY column1, column2
HAVING COUNT(column1 + column2) > 1
) thisTable
ON
table1.column1= thisTable.column1AND
table1.column2= thisTable.column2
答案 1 :(得分:0)
您可以使用count
窗口聚合来查找重复的(column1, column2)
对及其ID:
declare @table table (id int, column1 varchar(10), column2 varchar(10))
insert into @table values
(1, 'A', 'B')
,(2, 'C', 'D')
,(3, 'A', 'C')
,(4, 'B', 'D')
,(5, 'C', 'A')
,(6, 'D', 'B')
,(7, 'A', 'B')
;with a as (
select id, column1, column2,
cnt = count(id) over (partition by column1, column2)
from @table
)
select id, column1, column2
from a
where cnt > 1
结果:
id column1 column2
----------- ---------- ----------
1 A B
7 A B