Hive数据去重的两种方式 (distinct和group by)

 更新时间:2023年01月03日 09:50:17   作者:zzhangyuhang  
数据库中表存在重复数据,需要清理重复数据,下面这篇文章主要给大家介绍了关于Hive数据去重的两种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

实现数据去重有两种方式 :distinct 和 group by

1.distinct消除重复行

distinct支持单列、多列的去重方式。

单列去重的方式简明易懂,即相同值只保留1个。

多列的去重则是根据指定的去重的列信息来进行,即只有所有指定的列信息都相同,才会被认为是重复的信息。

(1)作用于单列

  select distinct name from A    //对A表的name去重然后显示

(2)作用于多列

  select distinct id,name from A   //对A表的id和name去重然后显示

注意,distinct作用于多列的时候只在开头加上即可,并不用每个字段都加上。

     distinct必须在开头,在中间是不可以的,会报错。

  select id,distinct name from A   //错误

(3)配合count使用

  select count(distinct name) from A  //对A表的不同的name进行计数

2.group by 分组语句

    select name from A group by name   //跟上述等价,对name分组,相当于去重。

    在使用group by的时候,前边一般会有聚合语句,例如sum,一些没有聚合的字段必须要加到group by 后边。

   select a,sum(b) from A group by a   //后边必须要有a,否则报错  

3.区别

 其实二者没有什么可比性,但是对于不包含聚集函数的GROUP BY操作来说,和DISTINCT操作是等价的。不过虽然二者的结果是一样的,但是二者的执行计划并不相同。

 distinct只是将重复的行从结果中出去; 

 group by是按指定的列分组,一般这时在select中会用到聚合函数。

 distinct是把不同的记录显示出来。 

 group by是在查询时先把纪录按照类别分出来再查询。

 group by 必须在查询结果中包含一个聚集函数,而distinct不用。

总结

到此这篇关于Hive数据去重的两种方式的文章就介绍到这了,更多相关Hive数据去重内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Navicat Premium自定义 sql 标签的创建方式

    Navicat Premium自定义 sql 标签的创建方式

    Navicat 中可以自定义一下sql语句的标签,方便开发者使用,这篇文章主要介绍了Navicat Premium自定义sql标签的创建方式,包括自定义标签创建方式,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • SQL注入绕过的技巧总结

    SQL注入绕过的技巧总结

    这篇文章主要给大家总结了一些关于SQL注入绕过的技巧,其中包括引号绕过、逗号绕过以及比较符(<,>)绕过,文中给出了详细的介绍和示例代码,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-02-02
  • 介绍PostgreSQL中的范围类型特性

    介绍PostgreSQL中的范围类型特性

    这篇文章主要介绍了介绍PostgreSQL中的范围类型特性,范围类型特性自9.2版本开始加入,需要的朋友可以参考下
    2015-04-04
  • 一步步教你使用Navicat工具创建MySQL数据库连接

    一步步教你使用Navicat工具创建MySQL数据库连接

    Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设,下面这篇文章主要给大家介绍了关于如何使用Navicat工具创建MySQL数据库连接的相关资料,需要的朋友可以参考下
    2023-03-03
  • 在SQL Server和Oracle中创建job

    在SQL Server和Oracle中创建job

    有的时候,我们可能需要在数据库中设定一些自动执行的任务(job),以此来自动完成一些包括统计、备份方面的需求,下面就简单说明一下有关ms server和oracle两种数据库中如何新建自动任务。
    2009-06-06
  • SQL 查询语句积累

    SQL 查询语句积累

    SQL 查询语句积累...
    2006-12-12
  • 大数据量,海量数据处理方法总结

    大数据量,海量数据处理方法总结

    大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯这样的一些涉及到海量数据的公司经常会问到。
    2010-11-11
  • 使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤详解

    使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤详解

    这篇文章主要介绍了使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • [数据库] 通用分页存储过程

    [数据库] 通用分页存储过程

    [数据库] 通用分页存储过程...
    2007-02-02
  • 数据库系统结构详解之三级模式结构

    数据库系统结构详解之三级模式结构

    这篇文章主要为大家介绍了数据库系统的结构,文中通过图文的方式详细的解析了数据库系统结构的三级模式结构,有需要的朋友可以借鉴参考下
    2021-09-09

最新评论