Hive分析函数LAG和LEAD详解

介绍

Hive的分析函数又叫窗口函数, 在oracle中就有这样的分析函数,主要用来做数据统计分析的。
Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据【LAG】和后N行的数据【LEAD】作为独立的列。

LAG

LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值
参数1为列名,参数2为往上第n行(可选,默认为1),参数3为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)。

LEAD

LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值
参数1为列名,参数2为往下第n行(可选,默认为1),参数3为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)。

用法

select *,lag(field_name, 1, 'none')over()as lag_col from tabl;
  • 其中over()里可以加入gorup by 和order by来进一步对数据进行处理。
  • lag也可以换成lead,刚好取值效果刚好相反。


    逻辑图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容