--功能概述:删除重复记录
--做成时间:2008/10/31
在几千条记录里,存在着些相同的记录,如何能用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)
比方说在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
分享到:
相关推荐
### SQL查询重复记录方法大全 在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录...
查询重复记录的基础方法 - **基本原理**:通过`GROUP BY`和`HAVING`子句来筛选出现次数多于一次的记录。 - **SQL示例**: ```sql SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1;...
本文将深入解析几种常见的SQL查询重复记录的方法,并通过示例代码加以说明,帮助读者更好地理解和掌握这些技巧。 ### SQL查询重复记录方法概览 #### 方法一:查询所有重复记录 首先,我们来看一种查询所有重复记录...
接下来,我们来看如何查询重复记录。在Oracle中,可以使用`GROUP BY` 和 `HAVING` 子句来实现这个功能。假设我们有一个`users`表,想要找出所有重复的邮箱地址,可以编写以下查询: ```sql SELECT email, COUNT(*) ...
根据提供的文件信息,我们可以深入探讨SQL中查询重复记录的各种方法及其应用场景。首先,我们来解析一下文件中的示例代码,并在此基础上进一步扩展相关的知识点。 ### 查找所有重复标题的记录 文件中的第一个示例...
这份名为“excel中查询重复记录并求和共1页.pdf.zip”的压缩包文件很可能是提供了一个关于如何在Excel中执行这个操作的教程。尽管无法直接在文本中提供PDF的具体内容,但根据标题和描述,我们可以详细地讨论一下在...
#### 二、查询重复记录 重复记录的查询通常涉及两种情况:基于单一字段的重复记录查询以及基于多个字段的重复记录查询。 ##### 1. 单一字段的重复记录查询 假设有一个表`people`,其中包含`peopleId`字段。我们希望...
1. **查询重复记录**: 当我们想找出基于单一字段(如 `Id`)的重复记录时,可以使用如下的 SQL 语句: ```sql select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1) ``` 这个...
使用ROWID删除重复记录时,可以采用与查询重复记录类似的方法,但操作变为删除。 ```sql DELETE FROM table1 a WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM table1 b WHERE a.name1 = b.name1 AND a.name2 = b....
#### 查询重复记录 在开始删除重复记录之前,首先需要确定哪些记录是重复的。以下SQL语句可以用来查询`test`表中所有字段都重复的记录: ```sql SELECT * FROM test GROUP BY name, age, sex, id, sf HAVING COUNT...
与查询重复记录类似,我们也可以使用GROUP BY和HAVING子句来删除重复记录。 ```sql DELETE FROM student GROUP BY num HAVING COUNT(num) > 1; ``` 3. **使用DISTINCT** 在使用DISTINCT去重之后,我们...
sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...
### 二、查询重复记录 在删除重复记录之前,首先需要确定哪些记录是重复的。这一步骤非常重要,因为它可以帮助我们验证是否有真正的重复记录存在,并且了解重复的程度。 #### SQL查询示例 假设有一个名为`...
**一、查询重复记录** 1. **多字段重复查询**: 使用自连接可以查询多字段同时重复的记录。例如,对于人员表`peosons`,可以使用如下SQL: ```sql SELECT p1.* FROM persons p1, persons p2 WHERE p1.id <> p2...
-- 查询重复记录 SELECT * FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1 ); -- 删除重复记录,只保留具有最小`rowid`的记录 DELETE FROM ...
2. **标记重复记录**:可以创建一个临时表或使用子查询来标记出需要删除的重复记录。 3. **执行删除操作**:基于标记好的记录执行删除操作。 #### 示例代码解析 以下是一段示例SQL脚本,用于演示如何删除表`a`中的...
首先,查询重复记录的基本思路是通过比较表中的每一条记录与其他记录的对应字段是否相同。例如,在人员表`peosons`中,如果想要找出姓名、身份证号、住址完全相同的记录,可以使用以下SQL语句: ```sql SELECT p1.*...
### 查询重复记录 你可以使用以下查询来找出重复的记录: ```sql SELECT * FROM employee GROUP BY emp_id, emp_name, salary HAVING COUNT(*) > 1; ``` 这将返回那些在`emp_id`, `emp_name`, 和 `salary`字段上...