hive函数 lag first_value

这些函数我涉及到的用法都是应用于partition by,分组的情形。

1.first_value
first_value(url) over (partition by cookieid order by createtime)
按cookieid分组,按createtime排序,取分组第一行的url字段

2.lag
LAG(col,n,DEFAULT) 用于统计分组内往上第n行值,类似于python中的shift(1),shift(2)
第一个参数为列名,
第二个参数为往上第n行(可选,默认为1),
第三个参数为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)

select 
    cookieid, 
    createtime, 
    url, 
    row_number() over (partition by cookieid order by createtime) as rn, 
    LAG(createtime,1,'1970-01-01 00:00:00') over (partition by cookieid order by createtime) as last_1_time, 
    LAG(createtime,2) over (partition by cookieid order by createtime) as last_2_time 
from cookie.cookie4

查询结果:



留言

熱門文章