数据准备

数据格式

  1. cookie1,2015-04-10,1
  2. cookie1,2015-04-11,5
  3. cookie1,2015-04-12,7
  4. cookie1,2015-04-13,3
  5. cookie1,2015-04-14,2
  6. cookie1,2015-04-15,4
  7. cookie1,2015-04-16,4

创建数据库及表

  1. create database if not exists cookie;
  2. use cookie;
  3. drop table if exists cookie1;
  4. create table cookie1(cookieid string, createtime string, pv int) row format delimited fields terminated by ',';
  5. load data local inpath "/home/hadoop/cookie1.txt" into table cookie1;
  6. select * from cookie1;

玩一玩SUM

查询语句

  1. select
  2. cookieid,
  3. createtime,
  4. pv,
  5. sum(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1,
  6. sum(pv) over (partition by cookieid order by createtime) as pv2,
  7. sum(pv) over (partition by cookieid) as pv3,
  8. sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4,
  9. sum(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5,
  10. sum(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6
  11. from cookie1;

查询结果

说明

  1. pv1: 分组内从起点到当前行的pv累积,如,11号的pv1=10号的pv+11号的pv, 12号=10号+11号+12
  2. pv2: pv1
  3. pv3: 分组内(cookie1)所有的pv累加
  4. pv4: 分组内当前行+往前3行,如,11号=10号+11号, 12号=10号+11号+12号, 13号=10号+11号+12号+13号, 14号=11号+12号+13号+14
  5. pv5: 分组内当前行+往前3行+往后1行,如,14号=11号+12号+13号+14号+15号=5+7+3+2+4=21
  6. pv6: 分组内当前行+往后所有行,如,13号=13号+14号+15号+16号=3+2+4+4=1314号=14号+15号+16号=2+4+4=10

如果不指定ROWS BETWEEN,默认为从起点到当前行;
如果不指定ORDER BY,则将分组内所有值累加;
关键是理解ROWS BETWEEN含义,也叫做WINDOW子句:
PRECEDING:往前
FOLLOWING:往后
CURRENT ROW:当前行
UNBOUNDED:起点,

  UNBOUNDED PRECEDING 表示从前面的起点,

  UNBOUNDED FOLLOWING:表示到后面的终点
–其他AVG,MIN,MAX,和SUM用法一样。

玩一玩AVG

查询语句

  1. select
  2. cookieid,
  3. createtime,
  4. pv,
  5. avg(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
  6. avg(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
  7. avg(pv) over (partition by cookieid) as pv3, --分组内所有行
  8. avg(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3
  9. avg(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1
  10. avg(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
  11. from cookie1;

查询结果

玩一玩MIN

查询语句

  1. select
  2. cookieid,
  3. createtime,
  4. pv,
  5. min(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
  6. min(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
  7. min(pv) over (partition by cookieid) as pv3, --分组内所有行
  8. min(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3
  9. min(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1
  10. min(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
  11. from cookie1;

查询结果

玩一玩MAX

查询语句

  1. select
  2. cookieid,
  3. createtime,
  4. pv,
  5. max(pv) over (partition by cookieid order by createtime rows between unbounded preceding and current row) as pv1, -- 默认为从起点到当前行
  6. max(pv) over (partition by cookieid order by createtime) as pv2, --从起点到当前行,结果同pv1
  7. max(pv) over (partition by cookieid) as pv3, --分组内所有行
  8. max(pv) over (partition by cookieid order by createtime rows between 3 preceding and current row) as pv4, --当前行+往前3
  9. max(pv) over (partition by cookieid order by createtime rows between 3 preceding and 1 following) as pv5, --当前行+往前3行+往后1
  10. max(pv) over (partition by cookieid order by createtime rows between current row and unbounded following) as pv6 --当前行+往后所有行
  11. from cookie1;

查询结果

Hive学习之路 (十三)Hive分析窗口函数(一) SUM,AVG,MIN,MAX的更多相关文章

  1. Hive分析窗口函数(一) SUM,AVG,MIN,MAX

    Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive中提供了越来越多的分析函数,用于完成负责的统计分析.抽时间将所有的分析窗 ...

  2. Hive函数:SUM,AVG,MIN,MAX

    转自:http://lxw1234.com/archives/2015/04/176.htm,Hive分析窗口函数(一) SUM,AVG,MIN,MAX 之前看到大数据田地有关于max()over(p ...

  3. [转帖]Hive学习之路 (一)Hive初识

    Hive学习之路 (一)Hive初识 https://www.cnblogs.com/qingyunzong/p/8707885.html 讨论QQ:1586558083 目录 Hive 简介 什么是 ...

  4. Hive学习之路 (二十)Hive 执行过程实例分析

    一.Hive 执行过程概述 1.概述 (1) Hive 将 HQL 转换成一组操作符(Operator),比如 GroupByOperator, JoinOperator 等 (2)操作符 Opera ...

  5. Hive学习之路 (一)Hive初识

    Hive 简介 什么是Hive 1.Hive 由 Facebook 实现并开源 2.是基于 Hadoop 的一个数据仓库工具 3.可以将结构化的数据映射为一张数据库表 4.并提供 HQL(Hive S ...

  6. Hive学习之路 (二十一)Hive 优化策略

    一.Hadoop 框架计算特性 1.数据量大不是问题,数据倾斜是个问题 2.jobs 数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次 汇总,产生十几个 jobs,耗时很长.原 ...

  7. Hive学习之路 (十一)Hive的5个面试题

    一.求单月访问次数和总访问次数 1.数据说明 数据字段说明 用户名,月份,访问次数 数据格式 A,, A,, B,, A,, B,, A,, A,, A,, B,, B,, A,, A,, B,, B ...

  8. Hive 学习之路(八)—— Hive 数据查询详解

    一.数据准备 为了演示查询操作,这里需要预先创建三张表,并加载测试数据. 数据文件emp.txt和dept.txt可以从本仓库的resources目录下载. 1.1 员工表 -- 建表语句 CREAT ...

  9. Hive学习之路 (二)Hive安装

    Hive的下载 下载地址http://mirrors.hust.edu.cn/apache/ 选择合适的Hive版本进行下载,进到stable-2文件夹可以看到稳定的2.x的版本是2.3.3 Hive ...

随机推荐

  1. THINK PHP 学习笔记20171115

    Part1:框架目录project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─co ...

  2. 中小型研发团队架构实践八:分布式协调服务ZooKeeper

    一.ZooKeeper 是什么 Apache ZooKeeper 由 Apache Hadoop 的子项目发展而来,于 2010 年 11 月正式成为了 Apache 的顶级项目. ZooKeeper ...

  3. 微信小程序之雪碧图(css script)

    今天有朋友问我关于微信小程序中如何在不占用大量网络带宽的情况下快速加载图片,我给他推荐了两种方式 1.雪碧图(css script),有过前端经验的朋友应该都有接触过. 2.懒加载. 由于时间关系我就 ...

  4. WDCP上传SSL证书

    1.在线申请SSL证书 2.网站管理>SSL证书上传 3.将key文件直接上传,cert文件内容复制到crt文件中,再上传 4.开启https 注意:同一个域名下解析的若干域名,只能走主域名的证 ...

  5. 关于ie7下display:inline-block;不支持的解决方案

    关于ie7下display:inline-block:不支持的解决方案 今天码的时候遇到这个问题了. 如果本身是内联元素的,把它的display属性设置设置为inline-block时,所有浏览器都是 ...

  6. DOM增删改操作

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. dojox.grid.DataGrid显示数据的方法(转)

    第一种:数据存在本地或者已经写死的JSON对象中,不需要跟服务端进行数据传输 <%@ page language="java" contentType="text/ ...

  8. ios虚拟机安装(一)

    安装软件:vmwarestation-v9.0.1()   MAC OS X Mountain Lion 10.8.2 xcode 4.6.2 一定要安装补丁:unlock-all-v110(mac系 ...

  9. lsnrctl 与 tnsnames.ora 的联系

    平台:Windoxs XP+Oracle 11G 当使用oralce的 Net Manager创建了一个名为“L3”的Listener后,要想使用lsnrctl启动和关闭 L3 还必须在tnsname ...

  10. 如何让你的Ssh连接,更加安全?

    希望你会涨姿势. First: vim /etc/ssh/sshd_config 在Port 22下面加一行,以端口1438为例,Port 1438 然后保存,重启ssh服务 systemctl re ...