为了账号安全,请及时绑定邮箱和手机立即绑定

在SQL Server中查找重复的行

在SQL Server中查找重复的行

呼如林 2020-02-04 16:04:27
我有一个组织的SQL Server数据库,并且有很多重复的行。我想运行一条select语句以获取所有这些信息和重复数量,而且还返回与每个组织相关联的ID。如下语句:SELECT     orgName, COUNT(*) AS dupes  FROM         organizations  GROUP BY orgName  HAVING      (COUNT(*) > 1)将返回类似orgName        | dupes  ABC Corp       | 7  Foo Federation | 5  Widget Company | 2 但我也想获取它们的ID。有什么办法吗?也许像一个orgName        | dupeCount | id  ABC Corp       | 1         | 34  ABC Corp       | 2         | 5  ...  Widget Company | 1         | 10  Widget Company | 2         | 2  原因是还有一个单独的链接到这些组织的用户表,我想统一它们(因此,请删除重复对象,以便用户链接到同一组织而不是重复组织)。但是我想手动分开,所以我不会搞砸任何东西,但是我仍然需要一条语句返回所有重复组织的ID,这样我才能浏览用户列表。
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

select o.orgName, oc.dupeCount, o.id

from organizations o

inner join (

    SELECT orgName, COUNT(*) AS dupeCount

    FROM organizations

    GROUP BY orgName

    HAVING COUNT(*) > 1

) oc on o.orgName = oc.orgName


查看完整回答
反对 回复 2020-02-04
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以运行以下查询,并找到重复项max(id)并删除这些行。


SELECT orgName, COUNT(*), Max(ID) AS dupes 

FROM organizations 

GROUP BY orgName 

HAVING (COUNT(*) > 1)

但是您必须多次运行此查询。


查看完整回答
反对 回复 2020-02-04
  • 3 回答
  • 0 关注
  • 868 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信