`
ujs_lifazhu
  • 浏览: 34687 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

查找和删除重复记录

    博客分类:
  • java
阅读更多

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

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)


from:http://bbs.csdn.net/topics/90401421
分享到:
评论

相关推荐

    Oracle中查找和删除重复记录方法

    删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据...重复记录判断的标准是:C1,C10和C20这三列的值都相同才算是重复记录。

    数据库 查询删除重复数据

    数据库查询删除重复数据是数据库管理中的一项重要操作,旨在查找和删除表中的重复记录。重复记录是根据单个字段或多个字段来判断的。下面介绍几种查找和删除重复记录的方法。 根据单个字段查找和删除重复记录 可以...

    Oracle中用Rowid查找和删除表中的重复记录

    ### Oracle中用Rowid查找和删除表中的重复记录 在Oracle数据库管理中,处理重复记录是一项常见的需求,尤其是在数据量较大的情况下。本文将详细介绍如何利用Rowid这一特性来有效地查找和删除表中的重复记录。 ####...

    查找删除重复记录

    ### 查找删除重复记录 #### 知识点一:理解重复记录的概念与影响 在数据库管理中,重复记录是指数据库表中的数据项完全相同或部分关键字段相同的多条记录。这些重复的数据可能会导致数据统计不准确、占用额外的...

    使用Oracle查询并删除重复记录的SQL语句

    除了使用子查询和RowId外,还有其他方法可以用来查找和删除重复记录。例如,我们可以使用游标来删除重复记录: ```sql declare @max integer, @id integer declare cur_rows cursor local for select 主字段, count...

    SQL重复记录查询与删除

    以下将详细解释如何使用SQL来查找和删除重复记录。 1. 单字段重复记录查询: 当我们只需要考虑单个字段(如`peopleId`)的重复时,可以使用子查询来找出这些记录。例如: ```sql select a.* from hrmresource ...

    删除sigil软件中使用“查找和替换”的记录

    在Sigil中,虽然没有直接提供删除查找和替换记录的选项,但我们可以采取一种间接的方法来清理这些历史记录。首先,你需要找到Sigil的配置文件,通常它位于用户的个人应用数据目录下,名为“sigil.ini”。这个文件...

    怎样删除数据库中重复记录

    今天,我们将讨论删除数据库中重复记录的经典方法,包括使用 SQL 语句和其他技巧。 查找表中多余的重复记录 要删除数据库中重复记录,首先需要找到这些记录。我们可以使用 SQL 语句来实现这一点。例如,我们可以...

    查询及删除重复记录的SQL语句.

    删除重复记录时,通常保留一个代表性的记录,例如保留 `ROWID` 最小的记录。可以使用以下 SQL 语句: ```sql DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ...

    VB删除Access数据库中重复记录(已测试,编译通过)

    在Access中一般只能查找10行大概20条重复记录,这样程序就可以任意指定表及多字段检索重复记录,并把重复的记录移除到一个临时表中,并不是进行真正删除,你可以进行恢复。但是执行第二次查找时则自动删除上次查找的...

    删除Access数据库中重复的记录

    在Access中一般只能查找10行大概20条重复记录,这样程序就可以任意指定表及多字段检索重复记录,并把重复的记录移除到一个临时表中,并不是进行真正删除,你可以进行恢复。但是执行第二次查找时则自动删除上次查找的...

    sql查询重复记录方法大全

    - 使用`SELECT DISTINCT`查询去除重复记录,并将结果存储到临时表`#Tmp`。 - 删除原始表,并将临时表中的数据重新导入到原表中。 以上是查询和处理SQL中重复记录的一些常用方法,每种方法都有其适用场景,实际应用...

    删除数据库中的重复记录

    本篇文章将深入探讨如何在SQL数据库,如Microsoft Access(.accdb)中查找并删除重复记录。 一、查找重复记录 1. SQL查询:使用`GROUP BY`和`HAVING`子句可以找出重复的数据。例如,假设我们有一个`Employees`表,...

    解决Oracle删除重复数据只留一条的方法详解

    查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...

    MySQL中查询、删除重复记录的方法大全

    本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having ...

    FME查找重复属性

    该功能的主要目的是查找具有相同属性值的特征,并根据需求对这些重复特征进行操作,如过滤、合并或删除。在描述中提到,此功能目前仅适用于“面”类型的几何对象,而不适用于“点”和“线”类型。这意味着如果你的...

    Oracle查询重复数据与删除重复记录方法

    以上几种方法都可以有效地帮助我们查找和删除Oracle数据库中的重复记录。选择哪种方法取决于具体的业务需求和数据规模。ROWID方法适合于快速定位记录;GROUP BY方法可用于统计重复记录的数量;而DISTINCT方法适用于...

    SQL语句查询重复记录大全

    - **复合字段**:当需要基于多个字段(如`peopleId`和`seq`)来查找重复记录时,可以在`GROUP BY`子句中同时包含这些字段。 - **SQL示例**: ```sql SELECT peopleId, seq FROM vitae GROUP BY peopleId, seq ...

Global site tag (gtag.js) - Google Analytics