`

数据库重复数据处理

阅读更多

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

 例二:
 select * from testtable
 where numeber in (select number from people group by number having count(number) > 1 )
 可以查出testtable表中number相同的记录

2
、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from
 people 
where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1
)
and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1
)

3
、查找表中多余的重复记录(多个字段) 
select * from
 vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*> 1
)

4
、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from
 vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*> 1
)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1
)


5
、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from
 vitae a
where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*> 1
)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1
)

(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*From A Group By Name Having Count(*> 1


如果还查性别也相同大则如下:
Select Name,sex,Count(*From A Group By Name,sex Having Count(*> 1


(三)
方法一

declare @max integer,@id integer

declare cur_rows cursor local for select 主字段,count(*from 表名 group by 主字段 having count(*>; 1

open cur_rows

fetch cur_rows into @id,@max


while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0


方法二

  有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用

select distinct * from
 tableName

就可以得到无重复记录的结果集。

如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from
 tableName

drop table
 tableName

select * into tableName from
 #Tmp

drop table
 #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2
、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下

假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1as autoID, * into #Tmp from
 tableName

select min(autoID) as autoID into #Tmp2 from #Tmp group by
 Name,autoID

select * from #Tmp where autoID in(select autoID from
 #tmp2)

最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)

(四)

查询重复

select * from tablename where id in
 (

select id from
 tablename 

group by
 id 

having count(id) > 1


)
分享到:
评论

相关推荐

    基于深度学习的大规模数据库重复记录删除研究.pdf

    3. 高效的计算能力:深度学习算法可以对大规模数据库重复记录数据进行快速计算和处理,提高删除效率。 因此,基于深度学习的大规模数据库重复记录删除方法可以满足重复记录管理的要求,提高数据库管理的效率,减少...

    Delphi找出数据库重复数据..rar

    本资源"Delphi找出数据库重复数据"提供了一个解决方案,帮助开发者高效地定位并处理这些重复信息。 首先,我们需要理解什么是数据库中的重复数据。重复数据通常指的是在特定字段或一组字段中存在完全相同的记录,这...

    删除数据库中重复的数据(只保留一条)

    在数据库管理过程中,经常会遇到需要清理数据的情况,其中一种常见需求就是删除数据库中的重复记录,同时确保每条数据的关键字段只保留一条记录。这种操作在维护数据一致性、提高查询效率等方面具有重要意义。根据...

    Oracle数据库重复数据删除技术的四大优势

    Oracle数据库重复数据删除技术是一种高效的数据管理策略,其核心优势主要体现在以下几个方面: 1. **更大的备份容量**:Oracle数据库的重复数据删除技术通过识别并消除备份数据中的冗余部分,显著减少了所需的存储...

    绑定数据库数据重复使用的asp.net程序

    在“绑定数据库数据重复使用的asp.net程序”这个主题中,我们将深入探讨如何在ASP.NET中有效地管理和重用从数据库检索的数据。 首先,我们需要了解数据绑定的概念。在ASP.NET中,数据绑定允许我们把数据库或其他...

    海洋地质数据库数据处理流程.pdf

    在数据库标准规范、元数据标准建设、数据库模式设计、服务系统设计与实现等方面取得了一定的成果,但是数据处理这一基础环节由于工作繁杂、琐碎,相对较少被人关注。因此,本文旨在根据实际工作经验,介绍海洋地质...

    易语言数据库是否重复

    在IT领域,数据库管理是至关重要的部分,尤其是在编程和数据处理中。易语言是一种为中国用户设计的编程语言,它的目标是让编程变得简单易懂。在这个场景中,我们讨论的是如何在易语言中检查数据库中的数据是否存在...

    往数据库插入数据,相同的不插入

    但在实际操作过程中,为了避免重复数据的插入,我们需要实现一种机制来判断待插入的数据是否已存在于数据库中。这不仅可以提高数据的准确性,还能有效避免因数据冗余而引发的一系列问题。 #### 核心需求解读 根据...

    实例介绍删除数据库中重复数据的几个方法

    ### 实例介绍删除数据库中重复数据的几个方法 在数据库管理过程中,删除重复记录是一项常见的需求,特别是当数据库中存在大量的冗余数据时,这不仅浪费存储空间,还可能导致查询性能下降以及数据的一致性问题。本文...

    oracle 查询重复数据

    在IT行业的数据库管理中,处理重复数据是一项常见且重要的任务,尤其在大型数据库如Oracle中。...掌握了这一技能,不仅能提高数据管理的效率,还能增强对数据库底层机制的理解,为更复杂的数据处理任务打下坚实的基础。

    查询重复数据sql语句

    在数据库管理过程中,查询重复数据是一项非常重要的任务。这不仅有助于确保数据的准确性和完整性,还可以提高数据分析的质量。...希望这些信息能够帮助你在实际工作中更有效地处理数据库中的重复数据问题。

    ACCESS数据库检查字段是否重复源码

    在IT领域,数据库管理是至关重要的,特别是在使用像Microsoft Access这样的关系型数据库管理系统时。...这对于数据录入、维护和数据分析都是极其重要的步骤,能够避免因重复数据导致的问题,提高数据质量。

    数据库与事务处理

    事务处理是数据库系统中的关键概念,它是确保数据一致性、完整性和可靠性的重要机制。 首先,我们需要了解什么是数据库。数据库是一个结构化的数据集合,它可以存储各种类型的信息,如文本、数字、图像等。常见的...

    易语言数据库检查重复字段模块源码

    总的来说,易语言数据库检查重复字段模块是一个实用的工具,它帮助开发者在数据录入阶段就能发现并处理重复数据,从而保证数据库的准确性和一致性。了解并掌握这种模块的实现原理和使用方法,对于从事数据库管理、...

    基于MapGIS的农村土地调查数据库建设中数据处理工作浅析

    ### 基于MapGIS的农村土地调查数据库建设中数据处理工作浅析 #### 引言 农村土地调查是一项复杂的系统工程,涉及到大量的政策解读、专业技术和数据处理工作。随着技术的发展,特别是地理信息系统(GIS)软件的广泛...

    删除数据库中重复数据的几个方法.docx

    这些方法提供了处理SQL Server中重复数据和数据库恢复的基本思路,但在实际操作中,应根据具体环境和数据情况谨慎操作,确保数据的安全性。在删除重复数据前,最好先备份数据,防止不可逆的损失。同时,为了避免重复...

    DataReader读取数据并查数据库数据是否重复

    总结,使用SqlDataReader读取数据并检查数据库数据是否重复是一种常见的数据处理操作。通过逐行读取数据并对比数据库中的记录,我们可以有效地发现重复项,从而确保数据的完整性和一致性。在实际应用中,我们应根据...

    MySQL数据库主键重复原因分析及处理.pdf

    MySQL数据库主键重复原因分析及处理.pdf MySQL数据库主键是数据库管理系统中的一种重要概念,它是指在关系型数据库中,每个表的唯一标识符,用于唯一地标识表中的每一条记录。主键是数据库设计的核心概念,关系型...

    数据库实验数据和公共数据库

    数据库是信息技术领域中不可或缺的一部分,主要用于存储、管理、检索和共享数据。在“数据库实验数据和公共数据库”这个主题中,我们主要会涉及到以下几个关键知识点: 1. **数据库概念**:数据库是一个组织化的...

    中医医案类数据库的构建与数据处理研究.pdf

    中医医案类数据库的构建与数据处理研究,正是响应这一需求,利用大数据和信息技术,对中医学的历代诊疗经验进行数字化整理与利用,以提高中医医案资源的利用效率和价值。 中医医案类数据库的研发背景,源于中医学...

Global site tag (gtag.js) - Google Analytics