`
pingwei000
  • 浏览: 60544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SQL直接删除冗余数据

阅读更多
/**
*删除表中有多行的重复的数据的多余记录,即只保留一行,多余的全删除
*/
//表模型:
表名 --tb
        ----------
        | id| n | v |
        ---------
        | 1 | a | 3 |
        ---------
        | 2 | a | 1 |
        ---------
        | 3 | a | 1 |
        ---------
        | 4 | b | 2 |
        ---------
        | 5 | b | 2 |
        ---------
        | 6 | c | 3 |
        ---------
        | 7 | d | 1 |
        ----------
处理后:
        ----------
        | id| n | v |
        ---------
        | 1 | a | 3 |
        ---------
        | 2 | a | 1 |
        ---------
        | 4 | b | 2 |
        ---------
        | 6 | c | 3 |
        ---------
        | 7 | d | 1 |
        ----------

//--四种代表方式如下,其中同一条语句中的rowid和id可以互相全部取代;max(..)与min(..)效果一致--//

1.> delete from tb a where rowid not in
                (select max(b.rowid) from tb b where a.n=b.n and a.v=b.v);
        或
                delete from tb a where rowid not in
                        (select max(b.id) from tb b where a.n=b.n and a.v=b.v);

2.> delete from tb where rowid in
                (select a.rowid form tb a,tb b where a.rowid>b.rowid
                        and a.n=b.n and a.v=b.v);

3.> delete from tb where rowid not in
                (select max(rowid) from tb t group by t.n,t.v);
        或
                delete from tb where rowid not in
                        (select min(id) from tb t group by t.n,t.v);

4.> delete from tb where (n,v) in
                (select n,v from tb group by n,v
                        having count(*)>1)
                and rowid not in
                (select min(rowid) from tb group by n,v
                        having count(*)>1);
分享到:
评论
1 楼 bo_hai 2014-06-26  
学习了。有效。

相关推荐

    基于SQL数据库实现冗余数据的查询与删除.pdf

    因此,及时地查询和删除冗余数据,是数据库管理员和开发人员的一项重要任务。 为了查询和删除冗余数据,可以采用以下方法: 1. 创建SQL查询语句。通过编写SQL语句来识别具有重复字段值或值集的记录,从而找出冗余...

    SQL去重 清除冗余数据

    SQL去重清除冗余数据 SQL去重是指清除查询结果或者是数据库里不必要的相对某个字段的冗余数据。对于查询结果去重,可以使用distinct关键字标注需要去重的字段,也可以使用group by + 关键字。 使用distinct关键字...

    SQL面试题-删除冗余数据.sql

    1、删除a、b、c中相同记录 2、删除a、b、c完全相同的记录,但保留一条。

    WordPress删除冗余数据插件Revision Manager

    都会产生相关的日志以记录此次操作,这些数据大多数情况下对于博主来说并没有什么用,持续的增加,反而加大了数据库的容量,进而加长了前台文章的查询时间,所以,删除冗余的数据、优化数据库,就变得尤为重要。...

    删除表中重复数据sql语句

    ### 删除表中重复数据SQL语句详解 #### 一、基础知识概述 在数据库管理中,重复数据是一个常见的问题,尤其当数据库经历长时间的数据输入时,可能会出现数据录入错误或者批量导入过程中导致的数据冗余。重复数据的...

    SQL冗余处理

    数据库冗余问题在数据管理和维护过程中经常遇到,特别是在大型系统中,随着时间的推移,数据积累越来越多,冗余数据不仅占用大量存储空间,还会影响系统的性能。因此,进行有效的冗余处理对于优化数据库、提高查询...

    处理单个表中的冗余数据

    在数据库管理中,冗余数据是一个常见的问题,它可能导致数据不一致、存储浪费以及增加维护难度。本主题将深入探讨如何处理单个表中的冗余数据,以保持数据的完整性和有效性。 首先,理解冗余数据的概念至关重要。...

    SQL对冗余数据的删除重复记录只保留单条的说明

    重复记录就是冗余数据的一种形式,它们占用不必要的空间,并可能在更新或删除时引发错误。本文主要讨论如何在SQL中删除这些重复记录,只保留单条数据。 首先,我们需要理解如何在数据库理论中处理重复数据。在数据...

    01-SDE清除冗余数据工具.rar

    `sdedeltable.sql` 可能用于删除指定的冗余数据表,而`sdedeluser.sql` 可能用于清理与冗余数据相关的用户信息或者权限设置。在使用这些SQL脚本之前,用户需要确保对数据库有足够的权限,并且已经备份了重要数据,...

    sql 日志冗余备份

    SQL日志冗余备份是一种确保数据安全性和高可用性的策略,尤其在关键业务系统中尤为重要。这个过程涉及在主服务器上执行数据库操作,并通过日志传送将这些操作的事务日志备份到辅助服务器,以便在主服务器出现问题时...

    使用SQL管理和查询数据.doc

    SQL,全称Structured Query Language,是用于管理...通过以上知识,我们可以有效地利用SQL进行数据的存储、检索、更新和删除,以满足各种业务需求。SQL的学习和熟练掌握是成为一名优秀数据库管理员或开发者的必备技能。

    SQL语句删除数据表中重复的记录

    在数据库管理中,有时我们需要确保数据表中的记录是唯一的,避免重复数据导致的不一致性和冗余。在SQL中,可以使用特定的查询语句来删除重复的记录,以保持数据的整洁和准确。以下是如何使用SQL语句来删除数据表中...

    万年老黄历sql数据文件

    这可能意味着原始数据源可能包含了一些冗余或不相关的链接,经过处理后,用户可以直接便捷地查询和使用黄历信息,而无需担心额外的复杂性。 在数据库设计中,清理和优化数据是非常重要的步骤,可以提高查询效率,...

    Oracle 回收站功能,彻底删除表ORA-00933:SQL command not properly ended

    然而,有时候也需要彻底删除某些对象,以释放空间或避免不必要的数据冗余。通过使用`PURGE`命令和相关SQL语句,可以有效地完成这些任务。同时,需要注意避免因SQL语句编写不当而导致的ORA-00933错误,以确保操作的...

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

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

    数据预处理从入门到实战 基于 SQL 、R 、Python.zip

    1. **数据清洗**:数据预处理的第一步通常是数据清洗,包括处理缺失值(用平均值、中位数或众数填充,或者直接删除含有缺失值的记录)、异常值检测与处理(如识别并修正离群值),以及重复数据的处理。 2. **数据...

    经典SQL面试练习50多道题(含答案).docx

    经典SQL面试练习50多道题(含答案)是SQL开发人员面试的必备知识之一,本文档总结了多种SQL面试题,涵盖了多表查询、删除冗余数据、查询符合条件的记录等多方面的知识点。下面对这些知识点进行总结和分析: 一、多...

    中国省市区域数据字典SQL.rar

    `bas_city_area.sql`可能包含了创建、查询、更新和删除与城市区域相关的数据库记录的语句,如`CREATE TABLE`来定义表结构,`INSERT INTO`添加数据,`SELECT`进行查询,`UPDATE`修改数据,以及`DELETE`删除数据等。...

    wordpress数据库优化和清理冗余数据的方法

    在使用WordPress构建网站时,随着时间的推移,网站内容不断更新和增加,数据库中会产生一些冗余数据。这不仅占用不必要的存储空间,而且可能导致数据库查询速度下降,影响网站的整体性能。因此,及时的数据库优化和...

Global site tag (gtag.js) - Google Analytics