sqlserver 删除表中重复的数据

news/2025/1/15 18:01:03/
--在删除之前可以先查看一下结果:
SELECT max(主键ID),列1,列2...列n FROM [TABLE表] group by 列1,列2...列n--删除重复的数据,保留主键最大的那条数据(如果需要保留主键最小的数据,则是:min(主键ID) ...)
delete from [TABLE表] where [主键ID] NOT IN (SELECT max(主键ID) FROM [TABLE表] group by 列1,列2...列n)--注: 删除除了最大主键ID以外的所有的数据

举个栗子,有表及数据如下(共10条):

查看我需要的结果(共3条):

保留ID为8、9、10的数据,删除其他的数据(共删除7条):

 验证去掉重复后的结果(共3条):

核心代码: 

--删除重复的数据
DELETE FROM [Student] WHERE ID NOT IN
(SELECT max([ID])[ID] FROM [Student] group by [Name],[Age])


http://www.ppmy.cn/news/734772.html

相关文章

sql删除表中各类重复数据

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1、查找表中多余的重复记录,重复记录是根据单个字段(code)来判断 select * from MLTY_MDM_PRODUCT where code in (select code from MLTY_MDM_PRODUCT group by code ha…

如何删除sql server中的重复数据

如何删除sql server中的重复数据 先来看下有多少重复数据,伪代码如下: select count(重复字段)-count(distinct 重复字段) from 表名执行这个SQL伪代码候就能看到有多少数据是重复的,以便后面查看是否全部删除 然后通过如下SQL伪代码对重复…

SQL删除重复数据,仅保留(最新/有效的)一条数据

表结构 CREATE TABLE people (id int(11) NOT NULL AUTO_INCREMENT,peopleName varchar(2000) DEFAULT NULL COMMENT peopleName,status tinyint(1) DEFAULT NULL COMMENT 0无效 1有效,seq int(5) NOT NULL DEFAULT 1 COMMENT 记录值,peopleId tinyint(4) DEFAULT 0 COMMENT p…

SQL删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条 在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from …

利用sql语句删除重复数据

记录原因: 昨天遇到一个问题:需要写一个sql语句删除重复数据。当时解决的办法,是先查询出重复的数据id,然后再单独写删除语句进行删除。今天想了想应该还是有其他办法解决的,研究了下可以通过一条语句就能解决。记录下顺便做下对比: 单独写…

sql 删除重复数据 只留一条

目录 常用 其他 mysql 常用 oracle中,借助rowid,来留下一条 delete from t1where (f1,f2,f3) in (select f1,f2,f3 from t1 group by f1,f2,f3 having count(*) > 1)and rowid not in (select min(rowid) from t1 group by f1,f2,f3 having cou…

sql删除重复数据只保留一条的操作方法

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重…

elixir语言并发编程

文章目录 spwan进程通信spawn_link erlang教程: 基础入门🔥 编程基础🔥 数据结构🔥 递归🔥 并发编程 elixir教程: 基础入门🔥 编程基础🔥 模式匹配🔥 递归枚举 …