HIVE SQL 高级分析函数及常用函数整理(持续更新)

本文整理了HIVE SQL中的高级分析函数,包括分区子句的使用,以及时间函数和条件函数的应用,是个人学习笔记,可供参考。
摘要由CSDN通过智能技术生成

个人整理,转载请注明来源

高级分析函数

<
返回值 函数名 说明 使用示例
返回类型取决于value_expr的类型 LAG ( value_expr [, offset ] [, default] )OVER ( [query_partition_clause] order_by_clause ) 通过该函数,可以不通过自连接同时去访问结果集中的其它行,它允许你像处理数组一样的去处理游标。给定一个查询结果集和游标的位置,就可以访问与当前行一起选择的以前的行。其相反的函数是LEAD。

1.offset是一个正整数,在用户没有设置的情况下其默认值为1,表示当前行的前面一行,若索引超出窗口的范围,就返回default值;

2.在用户没有设置default值的情况下,缺省默认返回NULL,用户可以根据所处理列的类型自行设定默认值。例如,如果该列为整型,则可以将默认值设为整数或NULL;

3.如果为浮点型,则可以将默认值设为浮点数或NULL;如果为字符串类型,则可以将默认值设为用单引号或双引号标识的字符串常量或NULL;如果是布尔型,则可以设为布尔值或NULL。
lag(cnt,1)OVER(PARTITION BY scene ORDER BY ds)
返回类型取决于value_expr的类型 LEAD (value_expr [, offset ] [, default ] ) OVER ( [query_partition_clause] order_by_clause ) 含义与LAG相反,只是它返回的是当前行的后面的行,其余部分和LAG函数一模一样。  
bigint ROW_NUMBER ( ) OVER ( [query_partition_clause] order_by_clause ) 返回每个分区内按照某些表达式排序后的行号,从1开始,为每条分组记录返回一个数字。NULL值被视为最小值。  
bigint RANK ( ) OVER ( [query_partition_clause] order_by_clause ) 1.此函数没有参数,可以计算数据项在分区中的排名。在每个分区内,根据ORDER BY子句中表达式的值,计算查询返回的每一行与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加,有同样值的行得到同样的数字序号(认为NULL是相等的)。每次ORDER BY表达式的值发生变化时,该序列也随之增加。然而,如果两行得到同样的排序,则序数将随后跳跃,如两行序数为1,则没有序数
2.序列将给组中的下一行分配值3,DENSE_RANK则没有任何跳跃,这也是它与DENSE_RANK的唯一区别

3.默认情况下,RANK()和DENSE_RANK()在递增排序中将空值指定为最低序号1,在递减排序中将空值指定为最高序号
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值