Sql server 2005 TSQL查找重复项
查找具有计数的重复行 假设给出了一张表Sql server 2005 TSQL查找重复项,sql-server-2005,Sql Server 2005,查找具有计数的重复行 假设给出了一张表 ID Name Age ----------------- 1 Jon 30 2 Skeet 30 1 Jon 30 4 Gravell 30 5 NULL 30 4 Gravell 30 5 NULL 30 7 James 40 所需输出(空值也应可比较) 为了查找重复项,我可以执行查询 se
ID Name Age
-----------------
1 Jon 30
2 Skeet 30
1 Jon 30
4 Gravell 30
5 NULL 30
4 Gravell 30
5 NULL 30
7 James 40
所需输出(空值也应可比较)
为了查找重复项,我可以执行查询
select ID,Name,Age from tableA group by ID,Name,Age having count(*) >1
如何生成描述?试试这个-
select ID,Name,Age, ('Found ' + cast(count(*) as varchar(5))) as description
from tableA group by ID,Name,Age having count(*) >1
所需的输出顺序在ID/Name级别基本上是随机的
要查找重复项
SELECT
ID, Name, Age, 'Found ' + Countof AS Description
FROM
(
SELECT
ID, Name, Age,
CAST(ROWNUMBER() OVER (PARITION BY Name ORDER BY ID) AS varchar(10)) AS Countof
FROM
MyTable
) foo
WHERE
Countof > 1
我不太明白。你怎么能让1-Jon-30找到1,然后1-Jon-30找到2。1-Jon-30-find 2不是唯一的记录吗(作为计数)
SELECT
ID, Name, Age,
'Found ' + CAST(ROWNUMBER() OVER (PARITION BY Name ORDER BY ID) AS varchar(10)) AS Description
FROM
MyTable
ORDER BY
ID, Description
SELECT
ID, Name, Age, 'Found ' + Countof AS Description
FROM
(
SELECT
ID, Name, Age,
CAST(ROWNUMBER() OVER (PARITION BY Name ORDER BY ID) AS varchar(10)) AS Countof
FROM
MyTable
) foo
WHERE
Countof > 1