重点介绍窗口函数的语法定义,函数应用范围,案例结合。下面内容是根据网上资料整理而成,均带有链接
窗口函数的应用场景http://yugouai.iteye.com/blog/1908121
LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值, 参数1为列名,参数2为往下第n行(可选,默认为1),参数3为默认值(当往下第n行为NULL时候,取默认值,如不指定,则为NULL)
统计用户停留时间,用户停留在网页的总时间,某网页的总停留时间
https://blog.csdn.net/kent7306/article/details/50441967
LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值 参数1为列名,参数2为往上第n行(可选,默认为1),参数3为默认值(当往上第n行为NULL时候,取默认值,如不指定,则为NULL)
与lead类似
https://blog.csdn.net/sunnyyoona/article/details/56484919
https://blog.csdn.net/evilcry2012/article/details/52788961 http://blog.itpub.net/28929558/viewspace-1181376/ https://blog.csdn.net/sunnyyoona/article/details/56484919 https://www.cnblogs.com/qingyunzong/p/8798606.html#_label1
常见的有
用法
SUM(字段) over (partition by 字段 a order by 计算项 b desc ) rank
http://yugouai.iteye.com/blog/1908121 计算已从平均的案例 https://clarity-us.com/quick-tip-calculrages-using-hive/
包括
DISTINCT支持SUM, COUNT和AVG等聚合函数,以及在每个分区内不同值上的聚合。当前实现具有以下限制:由于性能原因,在分区子句中不能支持ORDER BY或窗口规范。 支持的语法如下:
COUNT(DISTINCT a) OVER (PARTITION BY c)
Hive 2.1.0 及更高版本支持聚合函数在OVER字句中使用 添加了对引用OVER子句中的聚合函数的支持。 例如,目前我们可以使用OVER子句中的SUM聚合函数,如下所示:
SELECT rank() OVER (ORDER BY sum(b))
FROM T
GROUP BY a;
详细的中文介绍http://saboloh.com/2016/11/09/hive-languagemanual-windowingandanalytics/