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
查询结果:
留言
張貼留言