码迷,mamicode.com
首页 > 其他好文 > 详细

Hive窗口函数

时间:2018-12-14 13:58:18      阅读:484      评论:0      收藏:0      [点我收藏+]

标签:default   exp   数据   参考   table   pre   地址   play   cal   

 

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

环境准备:

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

  

数据:

技术分享图片

 

1、LEAD函数

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函数

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

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Hive窗口函数

标签:default   exp   数据   参考   table   pre   地址   play   cal   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!