删除表中的重复记录

DELETE
FROM
    people
WHERE
    peopleName IN (
        SELECT
            peopleName
        FROM
            people
        GROUP BY
            peopleName
        HAVING
            count(peopleName) > 1
    )
AND peopleId NOT IN (
    SELECT
        min(peopleId)
    FROM
        people
    GROUP BY
        peopleName
    HAVING
        count(peopleName) > 1
)

原文地址:https://www.cnblogs.com/naixin007/p/10360106.html

时间: 2024-10-08 15:21:03

删除表中的重复记录的相关文章

如何删除表中的重复记录只保留其中一条?

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  

如何删除数据库中的重复记录?

一.题外篇 今天很悲催啊,给用户数据做datapatch的时候,每个月的数据多导入了一份,瞬间惊出一身冷汗... 这可是产品环境,要是被老板知道了可就死定了,赶紧去掉重复的记录,同时写下下面的文章以备后用. 二.准备篇 1. 先创建一张学生表student: create table student( id varchar(10) not null, name varchar(10) not null, age number not null ); 2. 插入几条数据到表student: ins

删除表中的所有记录 ID从1开始

TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作. 语法TRUNCATE TABLE nameTRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. TRUNCATE TABLE 清空表所有数据,而且使标识列从标识种子(一般标识种子从1开始)

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

oracle select * from gcfr_t_vch_delete E WHERE E.rowid < (SELECT max(X.rowid) FROM gcfr_t_vch_delete X WHERE X.vchno = E.vchno and e.type = x.type and e.curragency = x.curragency); --或者 select * from gcfr_t_vch_delete E WHERE E.rowid > (SELECT min(X

mysql 数据表中查找重复记录

//例一:select name1,count(*) as count from table_name group by name1 having count>1;//例二:select name1,name2 ,count(name1) as countb,count(name2) as count from table_name group by name1,name2 having count>1 and countb >1;

MySQL 处理重复数据:防止表中出现重复数据、统计、过滤、删除重复数据

MySQL 处理重复数据 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据. 本章节我们将为大家介绍如何防止数据表出现重复数据及如何删除数据表中的重复数据. 防止表中出现重复数据 你可以在 MySQL 数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性. 让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录. CREATE TABLE person_tbl

【ORACLE】删除表中重复数据

原因 在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢? 平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 处理方法 重复的数据可能有这样两种情况: 第一种:删除表中所有重复的数据 第二种:只保留重复数据中最新记录的一条记录[工作中常用] 删除重复数据的想法 每一行数据所对应的rowid都是独一无二的,及时表中两个数据

SQL语句删除表中所有记录的方法

如何用一条sql语句删除表中的所有记录,这里分享下我的方法.参考链接: sql语句如何删除重复记录?四种方法 sql语句如何删除重复记录?教程详解 TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作. 语法TRUNCATE TABLE name 参数name 是要截断的表的名称或要删除其全部行的表的名称. 注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度

Mysql清空表(truncate)与删除表中数据(delete)的区别

近日在做一个区块链积分转代币的APP,牵涉到数据库中表的记录删除问题, 如果一条条删除那可真是累人.遂考虑直接进入mysql直接清空表或者删除表中数据. 本文记录一下这2种操作模式的区别,目标对象是表wp_comments,里面的所有留言均是垃圾留言,均可删除.然后便有了以下2种方式(进入mysql操作界面后): truncate table wp_comments; delete * from wp_comments; 其中truncate操作中的table可以省略,delete操作中的*可以