0. 说明

  Hive 的分析函数 窗口函数  | 排名函数 | 最大值 | 分层次 | lead && lag 统计活跃用户 | cume_dist


1. 窗口函数(开窗函数) over

  1.1 说明

  1 preceding  //前一个
  1 following  //后一个
  current row  //当前行
  unbounded preceding  //无上限
  unbounded following  //无下限

  1.2 测试

# 以行定义窗口界限
select id, name, age , sum(age)over(order by id rows between current row and 2 following) from user_par; # 以值定义窗口界限
select id, name, age , sum(age)over(order by age range between current row and 10 following) from user_par;

2. 排名函数

  2.1 并列跳跃

  113
  rank

select id, name, province, age , rank()over(partition by province order by age desc) from user_par;

  2.2 不跳跃

  112
  dense_rank

select id, name, province, age , dense_rank()over(partition by province order by age desc) from user_par;

  2.3 顺序

  123
  row_number

select id, name, province, age , row_number()over(partition by province order by age desc) from user_par;

3. 最大值

  first_value()

select id, name, province, age , first_value()over(partition by province order by age desc) from user_par;

4. 分层次

  按照三六九等进行平均分层

  ntile()

select id, name, age , ntile(3)over(order by age desc) from user_par;

5. lead && lag

  5.1 lead()

  将列向上提

select id, name, province, age , lead(age)over(partition by province order by age asc) from user_par;

  5.2 lag()

  将列向下沉

select id, name, province, age , lag(age)over(partition by province order by age asc) from user_par;

  5.3 统计连续活跃

  1. 准备数据

  

  2. 建表

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

  3. 加载数据

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

  4. 统计连续两月活跃用户

select id from (select id, month, lead(month)over(partition by id order by month desc) as month2 from active)a where month=month2+1;

6. cume_dist()

  指定值占总数的百分比

  Demo

select id,name,age, cume_dist()over(order by age desc) from user_nopar;

  


[Hive_10] Hive 的分析函数的更多相关文章

  1. hive窗口函数/分析函数详细剖析

    hive窗口函数/分析函数 在sql中有一类函数叫做聚合函数,例如sum().avg().max()等等,这类函数可以将多行数据按照规则聚集为一行,一般来讲聚集后的行数是要少于聚集前的行数的.但是有时 ...

  2. hive中分析函数window子句

    hive中有些分析函数功能确实很强大,在和sum,max等聚合函数结合起来能实现不少功能. 直接上代码演示吧 原始数据 channel1 2016-11-10 1 channel1 2016-11-1 ...

  3. Hive 窗口分析函数

    1.窗口函数 1.LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候,取默认值 ...

  4. Hive之分析函数

    目录 一.sum() over(partition by) 二.avg().min().max() over(partition) 三.row_number() over(partition by) ...

  5. Hive的分析函数的使用

    原文: https://www.toutiao.com/i6769120000578945544/?group_id=6769120000578945544 我们先准备数据库.表和数据 开窗分析函数相 ...

  6. Hive Ntile分析函数学习

    NTILE(n) 用于将分组数据按照顺序切分成n片,返回当前记录所在的切片值 NTILE不支持ROWS BETWEEN,比如 NTILE(2) OVER(PARTITION BY cookieid O ...

  7. Hive—简单窗口分析函数

    hive 窗口分析函数 : jdbc:hive2:> select * from t_access; +----------------+---------------------------- ...

  8. Hive 分析函数lead、lag实例应用

    Hive的分析函数又叫窗口函数,在oracle中就有这样的分析函数,主要用来做数据统计分析的. Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead) ...

  9. Hive简记

    在大数据工作中难免遇到数据仓库(OLAP)架构,以及通过Hive SQL简化分布式计算的场景.所以想通过这篇博客对Hive使用有一个大致总结,希望道友多多指教! 摘要: 1.Hive安装 2.Hive ...

随机推荐

  1. openssl enc(对称加密)

    openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 对称加密工具.了解对称加密的原理后就很简单了,原理部分见下文. openss ...

  2. Jenkins凭证及任务演示-pipeline(二)--技术流ken

    Jenkins前言 在上一篇博客<Jenkins持续集成介绍及插件安装版本更新演示(一)--技术流ken>中已经详细介绍了jenkins的插件安装以版本更新等,本篇博客将再深入探究jenk ...

  3. JavaWeb学习日记----表单提交方式

    1.表单提交方式 (1) 使用input控件中的submit提交 代码如下: <!DOCTYPE html> <html lang="en"> <he ...

  4. 当前主流电脑的BIOS调出键

    [组装电脑主板] 主板品牌  启动按键 华硕主板  F8 技嘉主板  F12 微星主板  F11 映泰主板  F9 梅捷主板  ESC或F12 七彩虹主板  ESC或F11 华擎主板  F11 斯巴达 ...

  5. react学习(二)之通信篇

    react性能提升原理:虚拟DOM react把真是的DOM tree,转化成virtual DOM,每次数据更新后,重新计算virtual DOM并与上一次的作对比,然后对发生改变的部分进行批量更新 ...

  6. vue-cli 3.x 开发插件并发布到 npm

    为了摆脱咸鱼的身份,我给自己定了一个开源项目的目标 于是抽空写了一个 textarea,打算发布到 npm 的时候却遇到了问题 之前用 vue-cli 2.x 的时候,打包配置项非常透明,可以很容易的 ...

  7. blfs(systemd版本)学习笔记-编译安装配置dhcpcd

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! dhcpcd项目地址:http://www.linuxfromscratch.org/blfs/view/stable-syst ...

  8. @RequestMapping 详解

    RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.RequestMapping注解有六个属性,下面我们把她分 ...

  9. POJ3734 Blocks(生成函数)

    题意 链接 长度为\(n\)的序列,用红黄蓝绿染色,其中红黄只能是偶数,问方案数 Sol 生成函数入门题 任意的是\(e^x\),偶数的是\(\frac{e^x + e^{-x}}{2}\) 最后化完 ...

  10. Win7录制电脑屏幕视频

    在日常生活中,有时候我们需要在电脑上录制视频,那就需要找到一款合适的录像工具,选择迅捷屏幕录像工具就是一个不错的选择,操作简单轻松易上手,美轮美奂的无损画质,教学视频.电影.游戏等都可以进行录制哦! ...