`
天梯梦
  • 浏览: 13730847 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

sql去除重复记录

阅读更多

习sql有一段时间了,发现在我建了一个用来测试的表(没有建索引)中出 现了许多的重复记录。后来总结了一些删除重复记录的方法,在Oracle中,可以通过唯一rowid实现删除重复记录;还可以建临时表来实现...这个只 提到其中的几种简单实用的方法,希望可以和大家分享(以表employee为例)。

 

 

SQL> desc employee

 

 

Name                                      Null?    Type
----------------------------------------- -------- ------------------

 

emp_id                                                NUMBER(10)
emp_name                                           VARCHAR2(20)

 

salary                                                NUMBER(10,2)

 

 

可以通过下面的语句查询重复的记录:

 

 

SQL> select * from employee ;

 

    EMP_ID EMP_NAME                                   SALARY

 

---------- ---------------------------------------- ----------

 

         1 sunshine                                      10000

 

         1 sunshine                                      10000

 

         2 semon                                          20000

 

         2 semon                                         20000

 

         3 xyz                                           30000

 

         2 semon                                         20000

 


SQL>
select distinct * from employee ;

 

 

    EMP_ID EMP_NAME                                     SALARY

 

---------- ---------------------------------------- ----------

 

         1 sunshine                                      10000

 

         2 semon                                         20000

 

          3 xyz                                             30000

 

SQL> select * from employee group by emp_id , emp_name , salary having count (*)> 1

 

 

    EMP_ID EMP_NAME                                     SALARY

 

---------- ---------------------------------------- ----------

 

         1 sunshine                                      10000

 

         2 semon                                          20000

 


SQL>
select * from employee e1

 

where rowid in ( select max ( rowid ) from employe e2
where e1.emp_id = e2.emp_id and

 

e1.emp_name = e2.emp_name and e1.salary = e2.salary );

 

 

 

    EMP_ID EMP_NAME                                     SALARY

 

---------- ---------------------------------------- ----------

 

         1 sunshine                                      10000

 

         3 xyz                                             30000

 

         2 semon                                         20000

分享到:
评论

相关推荐

    用SQL删除重复记录的N种方法

    以上介绍了多种使用SQL删除重复记录的方法,每种方法都有其适用场景和特点。在选择具体方法时,需要考虑数据库的类型、数据量大小以及性能要求等因素。通过合理选择合适的方法,可以有效提高数据清理的效率和准确性...

    SQL删除重复记录的方法

    在SQL中,删除重复记录是一项常见的数据库管理任务,特别是在数据清洗和整理时。本文将详细介绍四种有效的方法来处理这个问题。 **方法1:使用临时表** 这种方法通过创建临时表temp1来存储重复记录,并最终将不重复...

    四种SQL语句删除重复记录的方法

    ### 四种SQL语句删除重复记录的方法 在数据库管理中,经常会出现数据冗余的情况,特别是当数据量庞大时,这种现象更为普遍。对于重复记录的处理是维护数据库完整性和提高查询效率的重要手段之一。本文将详细介绍四...

    删除数据表中重复记录

    本文将详细介绍如何在不同的数据库系统(如MySQL、SQL Server、Oracle等)中删除重复记录。 #### SQL删除重复记录的基本思路 删除重复记录的核心思想是先识别出哪些记录是重复的,然后通过某种方式将这些重复记录...

    sql查询重复记录方法大全

    - `rowid`用于唯一标识每条记录,从而能够更准确地删除重复记录。 #### 方法八:处理具有多个重复字段的记录 **SQL语句**: ```sql SELECT DISTINCT * INTO #Tmp FROM tableName; DROP TABLE tableName; SELECT * ...

    SQL语句删除重复记录

    SQL语句删除重复记录 在数据库管理中,删除重复记录是一个非常重要的操作。重复记录可能来自于数据导入、系统错误或者其他原因。今天,我们将探讨如何使用 SQL 语句删除重复记录。下面将介绍四种不同的方法来删除...

    SQL删除重复行

    2. **删除重复记录**:保留每个`peopleId`的最小`rowid`,删除其他重复的行: ```sql DELETE FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP BY peopleId HAVING COUNT(peopleId) > 1 ) ...

    sql查询重复记录语句

    删除重复记录是数据清理的重要步骤,以下是一种通用的删除所有重复记录的方法: ```sql DELETE FROM tableName WHERE colName IN (SELECT colName FROM tableName GROUP BY colName HAVING COUNT(*) > 1); ``` ...

    sql去除重复记录大全

    各种去除重复的sql语句,日常常用,适合一些刚开始学习的基础人员

    轻松消除SQL SERVER重复记录

    在SQL Server中,处理重复...总之,通过创建临时表、添加唯一索引、复制数据以及更新原表,可以有效地在SQL Server中删除重复记录,而无需使用游标,提高了处理效率。这种方法尤其适用于处理大型表,且易于理解和实现。

    在SQL中删除重复记录(多种方法).

    在SQL中删除重复记录(多种方法).有兴趣的可以下载

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

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

    SQL语句查询重复记录大全

    删除重复记录的基本方法 - **基本思路**:通常的做法是先找出重复记录,然后使用`DELETE`语句删除它们。 - **SQL示例**: ```sql DELETE FROM people WHERE peopleId IN ( SELECT peopleId FROM people GROUP...

    sql删除表中重复记录方法

    这种方法通过创建两个临时表来辅助删除重复记录的过程。首先,通过`GROUP BY`和`COUNT(*)`函数找出重复的记录,并将这些记录的ID存储到临时表`temp1`中。接着,将不重复的记录也插入到`temp1`中。之后,创建一个新的...

    删除表中重复数据sql语句

    以上SQL语句能够帮助我们删除除了具有最小ROWID之外的所有重复记录。 3. **查找表中多余的重复记录(不含最小ROWID)** ```sql SELECT * FROM vita_ea WHERE (a.peopleId, a.seq) IN ( SELECT peopleId, seq ...

    sqlServer删除重复数据

    SQL Server 删除重复数据 SQL Server 删除重复数据是数据库管理中的一项重要任务。重复数据可能是完全重复的记录,也可能是部分关键字段重复...删除重复数据需要根据实际情况选择合适的方法,才能正确地删除重复记录。

    sql 查询重复数据

    删除重复记录可以使用以下 SQL 语句: ```sql DELETE 表 WHERE 重复字段 In (SELECT 重复字段 FROM 表 GROUP BY 重复字段 HAVING COUNT(*) > 1); ``` 保留一条重复记录 如果只想保留一条重复记录,可以...

    SQL删除重复列

    在数据库管理与维护过程中,数据清洗是一项非常重要的工作,而删除重复记录(或称为去重)是数据清洗中的常见需求之一。本文将围绕“SQL删除重复列”的主题,深入探讨如何有效地利用SQL语句来处理表中的重复数据。 ...

    sql查询表中某字段下所有重复的记录

    sql查询表中某字段下所有重复的记录,删除某字段下重复记录最小的那笔记录

Global site tag (gtag.js) - Google Analytics