Hive窗口函数

参考地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics

环境准备:

CREATE TABLE `wtab`(
  `a` int,
  `b` int,
  `c` int);

  

数据:

1、LEAD函数

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

LEAD (scalar_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause); The LEAD function is used to return data from the next row.

lead函数主要是返回窗口中列名为:scalar_expression偏移为offset的值,如果不存在则返回NULL,窗口使用over划分,具体划分参考示例:

 SELECT a, LEAD(a,1,9999) OVER (PARTITION BY b ORDER BY C) from wtab;

PARTITION BY 表示根据字段b划分窗口,就是b值相同的划分到一个窗口,ORDER BY 表示窗口内部按照字段C进行排序。此条查询结果为:

以b=1为例讲解,b相同的都在一个窗口按照c排序之后结果为:

这个就是b=1的窗口,a=1下面offset=1的数据为11,所以查询结果为:1 11 ;其他同理。

2、LAG函数

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

LAG  (scalar_expression [,offset] [,default]) OVER ([query_partition_clause] order_by_clause); The LAG function is used to access data from a previous row.

lag函数与lead函数相反,是向上offset取row,如果row不存在则返回默认值。示例:

 SELECT a, LAG(a, 2, 66666) OVER (PARTITION BY b ORDER BY C) from wtab;

根据字段b划分窗口之后向上offset=2取row,没有的话返回6666

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
span.Apple-tab-span { white-space: pre }

原文地址:https://www.cnblogs.com/leodaxin/p/10118919.html

时间: 2024-10-11 14:44:33

Hive窗口函数的相关文章

Hive窗口函数之LAG、LEAD、FIRST_VALUE、LAST_VALUE的用法

一.创建表: create table windows_ss ( polno string, eff_date string, userno string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' stored as textfile; 数据准备: P066666666666,2016-04-02 09:00:02,user01 P066666666666,2016-04-02 09:00:00,user02 P066666666666,20

Hive窗口函数最全案例详解

语法: 分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 常用分析函数: 聚合类 avg().sum().max().min() 排名类 row_number() 按照值排序时产生一个自增编号,不会重复 rank() 按照值排序时产生一个自增编号,值相等时会重复,会产生空位 dense_rank() 按照值排序时产生一个自增编号,值相等时会重复,不会产生空位 其他类 lag(列名,往前的行数,[行数为null时的默

Hive新功能 Cube, Rollup介绍

说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来,下面是几个实例可以帮助我们了解, 以acorn_3g.test_xinyan_reg为例: [[email protected] xjob]

hive 之 Cube, Rollup介绍

1. GROUPING SETS GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统维度,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起来. 为方便理解,以testdb.test_1为例: hive> use testdb; hive> desc test_1; user_id string ? ? ?id ? ? ? ? ? ? ? ? device_id ? ? ?string ? ? ?设备类型:手

Hive分析窗口函数

Hive分析窗口函数(四) LAG,LEAD,FIRST_VALUE,LAST_VALUE https://cwiki.apache.org/confluence/display/Hive/LanguageManual+WindowingAndAnalytics

Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK

问题导读: 1.NTILE作用是什么? 2.按照pv降序排列,生成分组内每天的pv名次可使用哪个窗口函数? 3.RANK 和 DENSE_RANK作用是什么? 接上篇:Hive分析窗口函数(一)SUM,AVG,MIN,MAX 本文中介绍前几个序列函数,NTILE,ROW_NUMBER,RANK,DENSE_RANK,下面会一一解释各自的用途. Hive版本为 apache-hive-0.13.1 注意: 序列函数不支持WINDOW子句.(什么是WINDOW子句,Hive分析窗口函数(一)SUM,

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

Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive分析窗口函数(一) SUM,AVG,MIN,MAX Hive中提供了越来越多的分析函数,用于完成负责的统计分析.抽时间将所有的分析窗口函数理一遍,将陆续发布. 今天先看几个基础的,SUM.AVG.MIN.MAX. 用于实现分组内所有和连续累积的统计. 数据准备 CREATE EXTERNAL TABLE lxw1234 ( cookieid string, createtime string, --day pv INT ) RO

hive内置函数详解(分析函数、窗口函数)

cli命令 show functions; desc function concat; desc function extended concat;查看某个函数怎么使用的例子 nvl函数coalesce(v1,v2,...)返回参数中第一个非空值,如果所有值都为null返回null: set.cli.print.header=true; winfunc 员工 工资 标识 id  money type 关系型运算符优先级高到低为:not and orand or 优先级 select id ,mo

hive的窗口函数cume_dist、fercent_rank

一.cume_dist 这两个序列分析函数不是很常用,这里也介绍一下.注意: 序列函数不支持WINDOW子句. 数据准备: d1,user1,1000 d1,user2,2000 d1,user3,3000 d2,user4,4000 d2,user5,5000 创建表并加载数据 create external table user( dept string, userid string, sal int ) row format delimited fields terminated by '