将所有数据连续分组,以便对HIVE中的数据进行分类

时间:2018-05-23 11:13:39

标签: group-by hive hiveql

我希望将我的数据分组连续几个月,以便对趋势进行概述。

数据是这样的:

enter image description here

所需(输出)分组如下:

enter image description here

在这里,我希望仅在连续3个月存在适当的分组时才会显示这些值(这可能会像连续2个月或4个月那样变化),但是当数据中缺少任何月份值时,不会出现任何情况

例如:用户1的值在2018-01这个月,但本月的最终所需输出中没有可用的分组,因为2017-11中没有值2018-01或2017-12至2018-02或2018-01至2018-03本月分组。

1 个答案:

答案 0 :(得分:0)

嗯。嗯。 。 。这是一种检查是否有连续三个月然后返回总和的方法:

select user, month, month_2, value_3
from (select t.*,
             lead(month, 2) over (partition by user order by month) as month_2,
             (sum(value) +
              lead(value) over (partition by user order by month) +
              lead(value, 2) over (partition by user order by month)
             ) as value_3
      from t
     ) t
where month_2 = add_months(month, 2);