2015-04-21 59 views
0

有沒有辦法在表中找到不需要指定全部/某些字段的重複項? 我需要在多個表上做到這一點,並希望能夠在循環中使用通用代碼(儘可能簡單)(只是更改表名)。通過對所有列進行分組來查找重複的SQL

所以基本上我一直在尋找的東西相當於:

SELECT * 
, COUNT(*) TotalCount 
FROM tableName 
GROUP BY * 
HAVING COUNT(*) > 1 
ORDER BY COUNT(*) DESC 

有沒有辦法這樣做呢?

+0

你試圖動態SQL從例如試圖

delete T from ( select row_number() over(order by item) as row_number, * from @t ) T where row_number not in ( select min(row_number) from (select row_number() over(order by item) as row_number, * from tableName) T group by item ) 

我把這個前還需要備份? –

+1

爲什麼你這樣做?如果您在列/列上具有主鍵列/列或uniq鍵約束,則只能對其進行分組。如果你沒有桌子上的主鍵,那麼你正在做一些非常錯誤的事情。 –

+0

沒有主鍵。該表存儲導入的數據。想法是在不知道列名的情況下確定可能的重複行。 –

回答

相關問題