SQL删除重复的记录(只保留一条)
生活随笔
收集整理的這篇文章主要介紹了
SQL删除重复的记录(只保留一条)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先新建表:
--創建示例表 CREATE TABLE t (id INT IDENTITY(1,1) PRIMARY KEY,a VARCHAR(10),b VARCHAR(10) ) --插入數據 INSERT INTO t SELECT 'aa','bb' UNION ALL SELECT 'a1','bgb' UNION ALL SELECT 'aa','bb' UNION ALL SELECT 'a2','bb' UNION ALL SELECT 'aa3','beeb' UNION ALL SELECT 'aa','bb' UNION ALL SELECT 'a2','bb'?
查詢重復數據:可看到重復數據為:[a2,bb] 重復2次,[aa,bb] 重復3次
--查詢重復數據 SELECT a,b,COUNT(*) count FROM t GROUP BY a,b?
刪除重復數據 (重復數據只保留1條):
方法一
--首先通過子查詢取出 id 最小的不重復行,然后通過 NOT IN 刪除重復數據 DELETE FROM t WHERE id NOT IN(SELECT MIN(id) FROM t GROUP BY a,b
)
?
方法二
--首先通過 PARTITION BY 對 a,b 列進行分區排序并生成序號列,然后將序號大于 1 的行刪除,即刪除了重復數據 DELETE a FROM (SELECT ROW_NUMBER() OVER (PARTITION BY a,b ORDER BY ID) num FROM t) a WHERE num>1?
轉載于:https://www.cnblogs.com/wynn0123/p/4628328.html
總結
以上是生活随笔為你收集整理的SQL删除重复的记录(只保留一条)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android ListView存在多
- 下一篇: Skype for Business S