Hive rows between ,range between 的理解跟案例

本文详细介绍了Hive中rows between和range between的使用,包括unbounded preceding、unbounded following、current row等概念,并通过具体案例展示了不同行范围的求和操作,如当前行至最后一行的汇总、首行与当前行的累加等,以及mainid在特定范围内的数值求和,深入理解Hive的数据仓库分析功能。
摘要由CSDN通过智能技术生成

unbounded preceding 起始行
unbounded following 结尾行
current row 当前行
1 preceding 当前行的前1行
1 following 当前行的后1行

首先这是数据格式

1.当前行到最后一行的汇总(逐行递减)

with tt as(

select a.*,sum(mainid)over(rows between current row and unbounded following) as sums
from (
select recid,buyerid,mainid 
from bi_edw.edw_crm_jd_sales_tmp
order by recid 
limit 4
)a
)
select * from tt

结果:

2.第一行跟当前行的汇总(累加)

with tt as(

select a.*,sum(mainid)over(rows between unbounded preceding and current row ) as sums
from (
select recid,buyerid,mainid 
from bi_edw.edw_crm_jd_sales_tmp
order by recid 
limit 4
)a
)
select * from 
Hive中,range between是用来定义滑动窗口的一种方式。它可以在开窗函数中指定一个范围,该范围是基于排序的列的值来确定的。具体来说,range between可以指定一个起始点和一个结束点,这个范围内的数据将被包括在窗口内进行计算。\[1\] 举个例子,假设我们有一个表range_test,其中包含了name、month和sales三个字段。我们可以使用range between来计算每个月的销售总额。首先,我们需要创建表并插入数据,然后使用窗口函数来计算销售总额。具体的SQL语句如下所示:\[2\] ``` create table range_test( name string, month int, sales int ); load data local inpath "/home/xx/test/1.txt" into table range_test; select name, month, sum(sales) over(order by month range between 6 preceding and current row) as sum_range from range_test; ``` 在上面的例子中,我们使用了range between 6 preceding and current row来定义一个滑动窗口,该窗口包括了当前行以及前面6行的数据。这样,我们就可以计算出每个月的销售总额,并将结果返回。\[3\] 总结起来,Hive中的range between可以用来定义滑动窗口,它可以在开窗函数中指定一个范围,该范围是基于排序的列的值来确定的。通过使用range between,我们可以对指定范围内的数据进行计算和分析。 #### 引用[.reference_title] - *1* *3* [hive实现类似滑动窗口效果](https://blog.csdn.net/yunzibiduan/article/details/129438170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【大数据技术】hive 窗口函数sum range between的详细介绍](https://blog.csdn.net/u011762522/article/details/131577303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值