hive的高阶函数
2019-05-21 本文已影响9人
小小毛同学
问题:
1,如果让你计算5月21号这个日期前3天到后面3天的数据和?(不只是5月21号这一天,所有天的前3天加上后3天的和)
2,对于组内排序的顺序问题?(值相等的时候,排序也相等或是跳过)
解决方法:
针对第一种情况:
需要使用hive的ROWS BETWEEN函数,也叫做WINDOW函数
其中SUM、AVG、MIN、MAX。用于实现分组内所有和连续累积的统计。
如果不指定ROWS BETWEEN,默认为从起点到当前行;
如果不指定ORDER BY,则将分组内所有值累加;
关键是理解ROWS BETWEEN含义,也叫做WINDOW子句:
PRECEDING:往前
FOLLOWING:往后
CURRENT ROW:当前行
UNBOUNDED:起点,UNBOUNDED PRECEDING 表示从前面的起点, UNBOUNDED FOLLOWING:表示到后面的终点
–其他AVG,MIN,MAX,和SUM用法一样。