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. thinkphp自动创建数据对象分析

    thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 i ...

  2. PHP配置文件php.ini详解

    ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;;;;;;;;;;;;; ...

  3. selenium缺少chromedriver解决方法

    1.安装好selenium,运行一段测试代码: from selenium import webdriver brower = webdriver.Chrome() brower.get('www.b ...

  4. python 闯关之路四(上)(并发编程与数据库理论)

    并发编程重点: 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别.互斥锁.信号. 事件.join.GIL.进程间通信.管道.队列. 生产者消息者模型.异步模 ...

  5. 利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)

    前言 本文旨在利用maven搭建ssm环境,而关于maven的具体内容,大家可以去阅读<Maven 实战>.其实园内这方面文章已有不少,那么为什么我还要重复造轮子呢?我只是想记录自己的实践 ...

  6. shell脚本--echo和printf打印输出

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 注:本文关于引号等特殊符号的处理仅仅只是几个例子,想要彻底搞明 ...

  7. Go Web:数据存储(3)——gob对象序列化

    序列化持久存储gob 1.内存存储 2.CSV文件存储 3.gob序列化存储 本篇文章仍然接前面的文章:内存存储,主要介绍将博客文章数据序列化持久到文件中. encoding/gob包用于编码器和解码 ...

  8. 【golang-GUI开发】qt之signal和slot(一)

    想了很久,我决定还是先从signal和slot(信号槽)开始讲起. signal和slot大家一定不陌生,先看一段示例(选自文档): class Counter : public QObject { ...

  9. 大话DI依赖注入+IOC控制反转(二) 之 浅析.Net Core中的DI与IOC

      转发时请注明原创作者及地址,否则追究责任.原创:alunchen 在上一篇文章中,我们聊了很多关于定义的方面,比较孤燥,下面我们结合.Net Core聊一下依赖注入&控制反转. 三种对象生 ...

  10. 第一册:lesson nineteen。

    原文:tired and thirsty. A:What's the matter,children? B:We are tired and thirsty. A:Sit down,here. Are ...