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

news/2025/1/15 18:34:36/

1、首先我们来看下数据

在这里插入图片描述
这里我们可以看到数据共有五条,但实际数据只有两条,需要删除三条重复的。

2、接下来找出重复的数据

提示:只需把 字段替换即可

select * from "epc_geely_catalog_fourthly" a  
where (a.carid,a.code) in  (select carid,code from "epc_geely_catalog_fourthly" group by (carid,code)  having count(*) > 1) 

执行完上面的sql可以查询出重复的数据,这里共计四条,那么需要各删一条才对。

在这里插入图片描述

3、最终执行删除语句

以下sql的解释:删除重复的数据保留一条数据

delete from "epc_geely_catalog_fourthly" a  
where (a.carid,a.code) in  (select carid,code from "epc_geely_catalog_fourthly" group by (carid,code) having count(*) > 1)  
and id not in (select min(id) from "epc_geely_catalog_fourthly" group by (carid,code) having count(*)>1) 

在这里插入图片描述
执行这一步后可以看到受影响行数为2条,那么再次查询数据验证是否成功删除重复数据
在这里插入图片描述

4、补充

如果你表中没有id作为唯一标示怎么办,生成唯一的随机数作为id即可

update "epc_geely_catalog_fourthly" set coordinates = ceil(random()*(1000000000000000-1)+1)

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

相关文章

Sql: 查询重复数据和删除重复数据

1. 单列 select * from test where name in (select name from test group by name having count (name) > 1 select * from [部门信息汇总] where 有效否 1 and [部门名称] in (select [部门名称] from [部门信息汇总] where 有效否1 group by [部门名称] having count (…

SQL SERVER 查询、删除重复数据

查询删除重复数据,只保留一条记录: 1.根据单字段,查询表中该字段重复出现记录: SELECT * FROM Table WHERE Parameter IN (SELECT Parameter FROM Table GROUP BY Parameter HAVING COUNT(Parameter ) > 1) 分析&#xff1a…

SQL中重复数据的查询与删除

第一篇 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where…

sqlserver 删除表中重复的数据

--在删除之前可以先查看一下结果: 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) F…

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 …