亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在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 關注
  • 939 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號