将连续月份分组在一起以对 HIVE 中的数据进行分类

Posted

技术标签:

【中文标题】将连续月份分组在一起以对 HIVE 中的数据进行分类【英文标题】:Grouping consecutive months together for categorizing data in HIVE 【发布时间】:2018-05-23 11:13:38 【问题描述】:

我希望对连续几个月的数据进行分组,以了解趋势。

数据是这样的:

所需的(输出)分组如下:

在这里,我只想在连续 3 个月存在适当分组时才获得这些值(这可以像连续 2 个月或 4 个月那样变化),但没有数据中缺少任何月份值的情况.

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

【问题讨论】:

“月”的类型是什么? 【参考方案1】:

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

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);

【讨论】:

以上是关于将连续月份分组在一起以对 HIVE 中的数据进行分类的主要内容,如果未能解决你的问题,请参考以下文章

SQL:将时间戳与仅时间参数相匹配,以对多天的唯一时间进行分组和计数

如何对对象数据的mongodb聚合数组进行分组以对同一日期的数字求和

如何添加计数以对 SQL Hive 中的空值进行排名?

写R脚本:以对多分组数据进行正态分布检验为例

对 pandas 数据框中的连续值进行分组

Hive日常数据需求