Hive窗口函数简单学习

=Start=

缘由:

简单记录一下前段时间学习到的Hive窗口函数的使用方法,方便后期使用参考。

正文:

参考解答:
一、窗口函数的定义

窗口函数也称为OLAP(Online Analytical Processing)函数,是对一组值进行操作,不需要使用Group by子句对数据进行分组,还能在同一行返回原来行的列和使用聚合函数得到的聚合列

那为什么叫窗口函数呢?因为窗口函数将表以窗口为单位进行分割,并在其中进行各种分析操作,为了让大家快速形成直观印象,才起了这样一个容易理解的名称

二、窗口函数的SQL语法

窗口函数的语法分为四个部分

  • 函数子句:指明具体操作,如sum-求和,first_value-取第一个值;
  • partition by子句:指明分区字段,如果没有,则将所有数据作为一个分区;
  • order by子句:指明了每个分区排序的字段和方式,也是可选的,没有就是按照表中的顺序;
  • 窗口子句:指明相对当前记录的计算范围,可以向上(preceding),可以向下(following),也可以使用between指明,上下边界的值,没有的话默认为当前分区。
三、窗口函数的分类

窗口函数的功能分为:计算、取值、排序、序列四种,前三种的使用场景比较常见,容易理解,最后一种(序列)的使用场景比较少。

  • 计算
    • count、sum、avg、max/min
  • 取值
    • first_value/last_value、lag/lead
  • 排序
    • rank、dense_rank、row_number、ntitle
  • 序列
    • cume_dist、percent_rank
常见用法1、分组排序取top

 

常见使用场景:

 

参考链接:

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/4389.html

《Hive窗口函数简单学习》上有1条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注