0. 说明

  Hive 的高级聚合函数 union all | grouping sets | cube | rollup

  pv //page view 页面访问量
  uv //user view 访问人数


1. union all

  表联合操作

  1.0 准备数据

  pv.txt

2015-03    2015-03-10    cookie1
2015-03 2015-03-10 cookie5
2015-03 2015-03-12 cookie7
2015-04 2015-04-12 cookie3
2015-04 2015-04-13 cookie2
2015-04 2015-04-13 cookie4
2015-04 2015-04-16 cookie4
2015-03 2015-03-10 cookie2
2015-03 2015-03-10 cookie3
2015-04 2015-04-12 cookie5
2015-04 2015-04-13 cookie6
2015-04 2015-04-15 cookie3
2015-04 2015-04-15 cookie2
2015-04 2015-04-16 cookie1
2015-02 2015-02-16 cookie2
2015-02 2015-02-16 cookie3

  1.1 建表

create table uv(month string,day string, id string) row format delimited fields terminated by '\t';

  1.2 加载数据

load data local inpath '/home/centos/files/pv.txt' into table uv;

  1.3 设置本地模式

    SET hive.exec.mode.local.auto=true;

  1.4 统计每月用户访问量

select month ,count(distinct id) from uv group by month;

  1.5 统计每天用户访问量

select day ,count(distinct id) from uv group by day;

  1.6 联合查询每月每天用户访问量

select month ,count(distinct id) from uv group by month union all select day ,count(distinct id) from uv group by day;

   

  1.7 使用分组集(grouping sets)实现查询

select month, day,count(distinct id), grouping__id from uv group by month,day grouping sets(month,day);

  grouping__id //分组的组号

  

  month

  day

  1.8 使用 cube 进行查询

select month, day,count(distinct id), grouping__id from uv group by month,day with cube order by grouping__id;

  

  null
  year
  month
  day
  year,month
  year,day
  month,day
  year,momth,day

  1.9 使用 rollup 进行查询

select month, day,count(distinct id), grouping__id from uv group by month,day with rollup order by grouping__id;

  

  null
  year
  year month
  year month day


[Hive_11] Hive 的高级聚合函数的更多相关文章

  1. Hive高阶聚合函数 GROUPING SETS、Cube、Rollup

    -- GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起 ...

  2. hive group by聚合函数增强

    1.grouping sets grouping sets子句都可以根据UNION连接的多个GROUP BY查询进行逻辑表示 SELECT a,b,SUM(c)FROM tab1 GROUP BY a ...

  3. 高级聚合函数rollup(),cube(),grouping sets()

       rollup(),cube(),grouping sets()   上面这几个函数,是对group by分组功能做的功能扩展. a.rollup()   功能:在原结果基础上追加一行总合计记录 ...

  4. 在MongoDB中实现聚合函数 (转)

    随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...

  5. 在MongoDB中实现聚合函数

    在MongoDB中实现聚合函数 随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加. ...

  6. 9.hive聚合函数,高级聚合,采样数据

    本文主要使用实例对Hive内建的一些聚合函数.分析函数以及采样函数进行比较详细的讲解. 一.基本聚合函数 数据聚合是按照特定条件将数据整合并表达出来,以总结出更多的组信息.Hive包含内建的一些基本聚 ...

  7. Hive学习之自己定义聚合函数

    Hive支持用户自己定义聚合函数(UDAF),这样的类型的函数提供了更加强大的数据处理功能. Hive支持两种类型的UDAF:简单型和通用型.正如名称所暗示的,简单型UDAF的实现很easy,但因为使 ...

  8. hive学习笔记之十:用户自定义聚合函数(UDAF)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...

  9. Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)

    在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF( ...

随机推荐

  1. Java设计模式之《模板模式》及使用场景

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9558825.html 模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框 ...

  2. 又是一个Notepad++的问题

    昨天刚刚解决了Style Configurator无法保存的问题,今天继续解决另一个. 装好Notepad++之后,可以在右键菜单里面看到 Edit With Notepad++,win7里面挺好用的 ...

  3. Java二维码的制作

    二维码现在已经到处都是了,下面是二维码的介绍 :二维码 ,又称 二维条码 , 二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在 ...

  4. Linux某些命令找不到/无法使用

    1.zip/unzip: command not found yum list | grep zip/unzip yum install zip yum install unzip 2.rz -y/s ...

  5. Newtonsoft.Json(Json.net) 的使用

    Newtonsoft.Json(Json.net) 的使用 //Newtonsoft.Json.dll using Newtonsoft.Json; using Newtonsoft.Json.Con ...

  6. devDependencies与dependencies (转载)

    简单整理: 一.关键词解释 devDependencies用于本地环境开发 dependencies用户发布环境 devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内.通 ...

  7. [angularjs] angularjs系列笔记(六)http

    读取服务器json数据,get方式 <body> <div ng-app="Home"> <div ng-controller="httpT ...

  8. 【模板小程序】任意长度非负十进制数转化为二进制(java实现)

    妈妈再也不用担心十进制数过大了233(注意只支持非负数) import com.google.common.base.Strings; import java.math.BigInteger; imp ...

  9. 多线程(二)ThreadLocal

    ThreadLocal public class Demo extends Thread{ static int i = 0; public Integer getNext(){ i++; retur ...

  10. spring-framework-中文文档一:IoC容器、介绍Spring IoC容器和bean

    5. IoC容器 5.1介绍Spring IoC容器和bean 5.2容器概述 本章介绍Spring Framework实现控制反转(IoC)[1]原理.IoC也被称为依赖注入(DI).它是一个过程, ...