配置单元窗口:分区上的不同结果

jutyujz0  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(316)

你好,我正在学习Hive的窗口功能,遇到了一个问题。
我想找出一个月内的客户数量:
我的表:
入止日期:收购日期
费率计划名称:string
库存:int
进线:int
我对3个变量进行了划分:购置年/月和费率计划

SELECT (first_value(stock) OVER w + sum(incomers) OVER w) AS stock_monthly,
year(date_in_out) AS year_in,
month(date_in_out) AS month_in,
rate_plan_name
FROM my_table
WINDOW w AS (PARTITION BY rate_plan_name, year(date_in_out), month(date_in_out) ORDER BY date_in_out ASC);

我得到结果了

我得到不同的每月库存值,而年/月和费率计划名称在我的数据集中是相同的。
我的问题是为什么这个值不同?我希望这里也一样。

f8rj6qna

f8rj6qna1#

带着一个 order by date_in_outwindow 规范, sum 为每行计算。如果您需要在年-月级别进行汇总,请使用

WINDOW w AS (PARTITION BY rate_plan_name, year(date_in_out), month(date_in_out))

但请注意 first_value 还需要一个 order by .
我想你在找,

SELECT first_value(stock) OVER(w ORDER BY date_in_out) + sum(incomers) OVER w AS stock_monthly,
year(date_in_out) AS year_in,
month(date_in_out) AS month_in,
rate_plan_name
FROM my_table
WINDOW w AS (PARTITION BY rate_plan_name, year(date_in_out), month(date_in_out))

相关问题