查找重复项,在sql中显示每个结果

Nim*_*sky 2 sql aggregate-functions sql-server-2008-r2

我想写这样的东西:

select t.id, t.name, from table t
group by t.name having count(t.name) > 1
Run Code Online (Sandbox Code Playgroud)

要产生以下内容:

id      name  count 
904834  jim    2
904835  jim    2
90145   Fred   3
90132   Fred   3
90133   Fred   3
Run Code Online (Sandbox Code Playgroud)

Lam*_*mak 7

对于SQL Server 2005+,您可以执行以下操作:

SELECT *
FROM (SELECT id, Name, COUNT(*) OVER(PARTITION BY Name) [Count]
      FROM table) t
WHERE [Count]>1
Run Code Online (Sandbox Code Playgroud)