MySQL 去除重复数据实例详解

 更新时间:2017年06月27日 11:43:39   投稿:lqh  
这篇文章主要介绍了MySQL 去除重复数据实例详解的相关资料,需要的朋友可以参考下

MySQL 去除重复数据实例详解

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有数据库系统都支持distinct操作。发生这种重复的原因主要是表设计不周,通过给表增加主键或唯一索引列即可避免。

select distinct * from t;

对于第二类重复问题,通常要求查询出重复记录中的任一条记录。假设表t有id,name,address三个字段,id是主键,有重复的字段为name,address,要求得到这两个字段唯一的结果集。

-- Oracle、MySQL,使用相关子查询

select * from t t1

 where t1.id =

 (select min(t2.id)

  from t t2

  where t1.name = t2.name and t1.address = t2.address);

 -- Hive只支持在FROM子句中使用子查询,子查询必须有名字,并且列必须唯一

select t1.*

 from t t1,

   (select name, address, min(id) id from t group by name, address) t2

 where t1.id = t2.id;

 

-- 还可以使用hive的row_number()分析函数

select t.id, t.name, t.address

 from (select id, name, address,

row_number() over (distribute by name, address sort by id) as rn 

     from t) t 

 where t.rn=1;

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • mysql 有关“InnoDB Error ib_logfile0 of different size”错误

    mysql 有关“InnoDB Error ib_logfile0 of different size”错误

    mysql 有关“InnoDB Error ib_logfile0 of different size”错误的解决方法,需要的朋友可以参考下。
    2011-06-06
  • mysql数据库优化总结(心得)

    mysql数据库优化总结(心得)

    本篇文章是对mysql数据库优化进行了详细的总结与介绍,需要的朋友参考下
    2013-06-06
  • MySQL表名不区分大小写的设置方法

    MySQL表名不区分大小写的设置方法

    今天郁闷死了,在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?
    2014-04-04
  • 详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始

    注意:这里说的delete是指不带where子句的delete语句 相同点: truncate和不带where子句的delete, 以及drop都会删除表内的数据
    2008-04-04
  • Mysql NULL导致的神坑

    Mysql NULL导致的神坑

    这篇文章主要介绍了Mysql NULL导致的神坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 一步步教你如何使用mysql binlog恢复数据

    一步步教你如何使用mysql binlog恢复数据

    Binlog日志即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,下面这篇文章主要给大家介绍了关于如何使用mysql binlog 恢复数据的相关资料,需要的朋友可以参考下
    2023-04-04
  • msyql show命令汇总

    msyql show命令汇总

    本篇文章是对msyql中的show命令进行了汇总,需要的朋友参考下
    2013-06-06
  • mysql根据逗号将一行数据拆分成多行数据

    mysql根据逗号将一行数据拆分成多行数据

    本文主要介绍了mysql根据逗号将一行数据拆分成多行数据,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • phpstudy无法启动MySQL数据库解决方法

    phpstudy无法启动MySQL数据库解决方法

    这篇文章主要给大家介绍了关于phpstudy无法启动MySQL数据库的解决方法,文中通过图文将解决的办法介绍的非常详细,对同样遇到这个问题的同学具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-05-05
  • MySQL通过ibd文件恢复数据的操作过程

    MySQL通过ibd文件恢复数据的操作过程

    通常,在InnoDB存储引擎下,一个表由三部分组成:数据字典(.frm文件)、表空间(.ibd文件)和日志文件,其中,.frm文件存储了表的定义,.ibd文件存储了表的数据和索引,本文给大家记录一次MySQL通过ibd文件恢复数据的操作过程,需要的朋友可以参考下
    2024-10-10

最新评论