Sql server 使用TSQL将列映射到其ID
我有一个查询,它获取表中的重复记录。见下文:Sql server 使用TSQL将列映射到其ID,sql-server,tsql,Sql Server,Tsql,我有一个查询,它获取表中的重复记录。见下文: SELECT column1, column2 FROM table1 GROUP BY column1, column2 HAVING COUNT(column1 + column2) > 1 现在,我需要将column1和column2映射到它的表ID,我无法将其合并到上面的查询中。我正在使用TSQL,我该怎么做?此代码用于获取ID: SELECT Id FROM table1 INNER JOIN ( SELECT colu
SELECT column1, column2
FROM table1
GROUP BY column1, column2
HAVING COUNT(column1 + column2) > 1
现在,我需要将column1和column2映射到它的表ID,我无法将其合并到上面的查询中。我正在使用TSQL,我该怎么做?此代码用于获取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
您可以使用
count
窗口聚合查找重复的(第1列、第2列)
对及其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
表ID是什么?请共享表结构和其他相关详细信息。表ID是唯一标识符或主键。