处理数据库重复数据问题

1.删除数据库重复数据,保留id最小的数据

DELETE FROM c_customer_product
WHERE fid IN
(
SELECT fid FROM
(
SELECT fid FROM c_customer_product
WHERE (fcustomer_id,fproduct_id,fis_delete) IN
(SELECT fcustomer_id,fproduct_id,fis_delete
FROM c_customer_product GROUP BY fcustomer_id,fproduct_id,fis_delete HAVING COUNT(*)>1)
AND fid NOT IN
(SELECT MIN(fid) FROM c_customer_product GROUP BY fcustomer_id,fproduct_id,fis_delete HAVING COUNT(*)>1)
) fidresult
)

2.查找某个表中某几条记录完全相同的数据

如 :查询 c_customer表中fdoctor_id,fhospital_id,fis_delete数据一样的记录

SELECT fid FROM
(
SELECT fid FROM c_customer
WHERE (fdoctor_id,fhospital_id,fis_delete) IN
(SELECT fdoctor_id,fhospital_id,fis_delete
FROM c_customer GROUP BY fdoctor_id,fhospital_id,fis_delete HAVING COUNT(*)>1)
AND fid NOT IN
(SELECT MIN(fid) FROM c_customer GROUP BY fdoctor_id,fhospital_id,fis_delete HAVING COUNT(*)>1)
) fidresult

原文地址:https://www.cnblogs.com/liuchq/p/10496463.html

时间: 2024-10-13 10:57:41

处理数据库重复数据问题的相关文章

删除数据库重复数据

例如: id           name         value 1               a                 pp 2               a                 pp 3               b                 iii 4               b                 pp 5               b                 pp 6               c           

数据库处理表中重复数据方法

--查询表中重复数据 select * from 表名 t where t.id in ( SELECT id FROM 表名 GROUP BY id HAVING COUNT(主键编号)>1 ); --去除表中重复数据 delete from 表名 a where rowid not in ( select max(b.rowid) from 表名 b where a.主键编号 = b.主键编号 );数据库处理表中重复数据方法,布布扣,bubuko.com

用sql删除数据库重复的数据的方法

/***********************************************两个意义上的重复记录:1.是完全重复的记录,也即所有字段均重复的记录,2.是部分关键字段重复的记录,比如username字段重复,  而其他字段不一定重复或都重复可以忽略,这类重复  问题通常要求保留重复记录中的第一条记录************************************************/ /*1.数据完全重复(用到了一个临时表#Tmp)*/CREATE TABLE ad

数据库:去重和查询重复数据

在数据库表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 1.作用于单列 select distinct name from A 执行后结果如下: 作用于多列 示例2.1 select distinct name, id from A 执行后结果如下: 实际上是根据name和id两个字段来去重的,这种方式Access和SQL Server同时支持. 有时候需要查询重复数据的记录,可以用group

MySQL 删除数据库中重复数据(以部分数据为准)

delete from zqzrdp where tel  in (select min(dpxx_id) from  zqzrdp  group by tel  having count(tel)>1); 执行,报错 异常意为:你不能指定目标表的更新在FROM子句.傻了,MySQL 这样写,不行,让人郁闷. 难倒只能分步操作,蛋疼 以下是网友写的,同样是坑爹的代码,我机器上运行不了. 1. 查询需要删除的记录,会保留一条记录.  代码如下 复制代码 select a.id,a.subject,

数据库删除重复数据

第一,数据库中实体重复的解决方法. 实体重复也就是完全重复:即表中两行记录完全一样的情况.这类数据重复就需要删除一条记录,解决方法比较简单,具体操作如下: 使用select distinct * from tableName就可以得到无重复记录的结果集.如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除select distinct * into #Tmp from tableNamedrop table tableNameselect * into tableName from

数据库去除重复数据

小标记一下,数据库大量重复数据去除 下面是一个根据重复的name  移除的 create table temp select max(id) as id  from table1 group by name ;//name分组  拿到最大id  保存到临时表 delete table1 where id not in(select id from temp); 以上仅供参考,其他的比葫芦画瓢

在C#应用程序中,利用表值参数过滤重复,批量向数据库导入数据,并且返回重复数据

在很多情况下,应用程序都需要实现excel数据导入功能,数据如果只有几十条,或上百条,甚至上千条,速度还好. 但是不仅如此,如果客户提供给你的excel本身存在着重复数据,或是excel中的某些数据已经在数据库存在,那这时,在向数据库插入数据前你还得判重,如果不存在才进行导入 通常,我们第一步就会通过上传的方式把excel中的数据读到内存,然后通过循环的方式得出一条一条数据,接着对于每条数据用关键字段去往数据库中进行一次查重,若存在则不做事情,若 不存在则向数据库中插入一条数据.这样一来,我们每

查找数据库中重复数据T-SQL

查找数据库中重复数据T-SQL ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_datas a where a.rowid > (select min(b.rowid) from adam_entity_datas b where b.data_guid = a.data_guid) 如果表中有大量数据,但是重复数据比较少,那么可以用下面的语句提高