【Hive】窗口函数

(每次使用窗口函数时,老是忘记窗口中rows的语法,所以有了以下简化版的备忘录。)

一、概念

窗口函数,即根据语法结构组织特定的数据框,计算指定的统计指标值:

-- 语法结构
函数(字段) over([partition by 分组字段] [order by 排序字段] [rows between unbounded preceding and unbounded following])
-- 举例:每年中,员工月累计销量(当前月+之前月)
sum(销量) over(partition by 员工姓名, 年份 order by 月份 rows between unbounded preceding and current row)

其中over()中,可分为以下3个部分:

1. partition by 字段

-- 说明
partition by 用于分组,即与group by的含义一致

2. order by 字段

-- 说明
order by 用于排序,降序的话,直接在字段后面加desc

3. rows between 起点 and 终点

-- 说明
起点:
unbounded preceding:往前不限制,即窗口内第一行
n preceding:前n行
current row:当前行
终点:
unbounded following:往后不限制,即窗口内最后一行
n following:后n行
current row:当前行

-- 举例,假设当前行为x
rows between  2 preceding and current row -- 样本范围=[x-2, x]
rows between  unbounded preceding and current row -- 样本范围=[窗口上限, x]
rows between  2 preceding and 1 following -- 样本范围=[x-2, x+1]
rows between  current row and 1 following -- 样本范围=[x, x+1]
rows between  current row and unbounded following -- 样本范围=[x, 窗口下限]

 

二、具体使用

(点击链接)

你可能感兴趣的:(hive)