我正在创建一个代码来检查表的最后28天。
我遇到了这个密码
WINDOW w AS (PARTITION BY abs_wd.abs_wd_employee_id ORDER BY abs_wd.date_diff RANGE BETWEEN 28 PRECEDING AND 1 PRECEDING)
我的问题是:这是从昨天到28日从昨天?换言之,如果我只用“previous”,这是从昨天算起的还是我必须加上“1”
谢谢!:)
我正在创建一个代码来检查表的最后28天。
我遇到了这个密码
WINDOW w AS (PARTITION BY abs_wd.abs_wd_employee_id ORDER BY abs_wd.date_diff RANGE BETWEEN 28 PRECEDING AND 1 PRECEDING)
我的问题是:这是从昨天到28日从昨天?换言之,如果我只用“previous”,这是从昨天算起的还是我必须加上“1”
谢谢!:)
1条答案
按热度按时间ldfqzlk81#
在hive window子句中
PRECEDING
指当前行之前的行数。类似的词FOLLOWING
请告诉我当前行后面的行。例如,在您的查询中
BETWEEN 28 PRECEDING
基本上是指在当前行后面28行。因此,请回答您的问题,默认情况下,窗口在当前行上工作,但如果您要从上一个窗口开始,则需要有一个从前一行开始的范围(正如您在问题中正确完成的那样),如下所示:
例子:
基于示例cloudera客户数据集,我在orders表上运行了一个sum聚合,窗口为2个previous和1个previous。如果查看第4行,window函数将返回一个窗口中从昨天日期到昨天日期前一天的订单总数。
示例中使用的查询:
更多关于配置单元文档中的窗口函数。