成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL中刪除重復數據問題

運維 數據庫運維
我們數據庫中最后要保留的結果就是第二步中查詢出來的數據,我們把其他的數據刪除即可。怎么刪除呢?我們使用ID來排除。

[[437524]]

本文轉載自微信公眾號「SQL數據庫開發」,作者丶平凡世界  。轉載本文請聯系SQL數據庫開發公眾號。

需求分析

數據庫中存在重復記錄,刪除保留其中一條(是否重復判斷基準為多個字段)

解決方案

碰到這樣的問題我們先分解步驟來看

  • 創建測試數據
  • 找到重復的數據
  • 刪除重復的數據并且保留一行

創建測試數據

我們創建一個人員信息表并在里面插入一些重復的數據。

  1. CREATE TABLE [dbo].[Person]( 
  2.  [ID] [INT] IDENTITY(1,1) NOT NULL
  3.  [Name] [VARCHAR](20) NULL
  4.  [Age] [INTNULL
  5.  [Address] [VARCHAR](20) NULL
  6.  [Sex] [CHAR](2) NULL 
  7. ); 
  8.  
  9. SET IDENTITY_INSERT [dbo].[Person] ON
  10. INSERT INTO [dbo].[Person] (ID,Name,Age,Address,Sex) 
  11. VALUES 
  12. ( 1, '張三', 18, '北京路18號''男' ), 
  13. ( 2, '李四', 19, '北京路29號''男' ), 
  14. ( 3, '王五', 19, '南京路11號''女' ), 
  15. ( 4, '張三', 18, '北京路18號''男' ), 
  16. ( 5, '李四', 19, '北京路29號''男' ), 
  17. ( 6, '張三', 18, '北京路18號''男' ), 
  18. ( 7, '王五', 19, '南京路11號''女' ), 
  19. ( 8, '馬六', 18, '南京路19號''女' ); 
  20. SET IDENTITY_INSERT [dbo].[Person]  OFF

(提示:可以左右滑動代碼)

建立好測試數據如下:

我們發現除了自增長ID不同以為,有幾條其他字段都重復的數據出現,符合我們的需求。

找出重復的數據

  1. SELECT MAX(ID) ID  , 
  2. Name,Age,Address,Sex 
  3. FROM dbo.Person 
  4. GROUP BY Name,Age,Address,Sex 
  5. HAVING COUNT(1)>1 

HAVING將分組后統計出來的數量大于1的數據行,就是我們要找的重復數據:

上面用Max函數或者Min函數均可,只是為了保證取出來的數據的唯一性。

刪除重復的數據

其實我們數據庫中最后要保留的結果就是第二步中查詢出來的數據,我們把其他的數據刪除即可。怎么刪除呢?我們使用ID來排除。

  1. DELETE  FROM Person 
  2. WHERE  EXISTS 
  3. SELECT * FROM ( 
  4. SELECT  
  5. MAX(ID) ID, 
  6. Name,Age,Address,Sex 
  7. FROM dbo.Person 
  8. GROUP BY Name,Age,Address,Sex 
  9. HAVING COUNT(1)>1) T 
  10. WHERE Person.Name=T.Name 
  11. AND Person.Age=T.Age 
  12. AND Person.Address=T.Address 
  13. AND Person.Sex=T.Sex 
  14. AND Person.ID<T.ID--如果上面使用MIN函數,這里就要改成> 

執行完后重新查詢Person表結果如下:

馬六因為只有一條記錄,所以沒有參與去重,直接顯示。

今天的案例分享結束,小伙伴們可以自己動手嘗試一下,興許工作中也會遇到類似問題。如果你在公眾中遇到一些有趣的問題也可以發送給我。

 

責任編輯:武曉燕 來源: SQL數據庫開發
相關推薦

2010-07-07 16:53:54

SQL Server重

2010-09-02 10:36:51

SQL刪除

2011-04-13 13:05:14

重復數據刪除

2010-07-26 09:55:55

SQL Server重

2010-07-08 13:06:05

SQL Server刪

2010-07-21 11:38:59

SQL Server重

2010-07-26 14:58:26

SQL Server刪

2010-07-01 12:29:27

SQL Server重

2010-07-23 16:21:37

SQL Server重

2010-07-23 15:09:42

SQL Server刪

2011-03-14 15:47:33

Oracle數據庫

2009-01-11 17:32:03

Oracle數據庫重復數據

2023-02-26 23:31:01

SQL數據庫

2011-04-13 13:13:09

重復數據刪除

2010-07-08 13:20:05

SQL Server刪

2024-10-16 17:04:13

2010-11-03 13:50:49

DB2刪除重復數據

2011-03-10 15:06:02

重復數據刪除技術

2015-10-23 16:40:21

DB2刪除數據

2009-02-27 10:18:41

重復數據刪除In-linePost-Proces
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品片 | 日韩欧美在 | 精品中文字幕久久 | 久久r免费视频 | 7777精品伊人久久精品影视 | 免费精品一区 | av毛片 | 日本一本在线 | 久久99精品久久久水蜜桃 | 亚洲国产成人av好男人在线观看 | 日本人麻豆 | 日本精品久久 | 欧美精品在线免费观看 | 久久精品亚洲精品 | 国产一级一级毛片 | 欧美久久久久久 | 中文字幕在线观看视频一区 | 国产精品久久久乱弄 | 中文字幕免费视频 | 韩国精品在线观看 | 97精品国产 | 国产精品成人在线播放 | 99国产精品99久久久久久 | 久久天堂| 精品一区二区不卡 | 色永久| 国产九九九九 | 国产激情一区二区三区 | 亚洲社区在线 | 中文字幕国产精品视频 | 欧美性生活一区二区三区 | 日韩在线免费播放 | 毛片a级毛片免费播放100 | 伊人最新网址 | 黄色国产区 | 国产午夜精品视频 | 一区二区三区免费 | 久久er99热精品一区二区 | 日韩一区二区免费视频 | 精品欧美一区二区三区久久久 | 全部免费毛片在线播放网站 |