Hiveql - 将每小时数据汇总到每天

Posted

技术标签:

【中文标题】Hiveql - 将每小时数据汇总到每天【英文标题】:Hiveql - Aggregating hourly data to daily 【发布时间】:2020-07-20 16:40:35 【问题描述】:

我是 Hiveql 的新手,希望在一个非常简单的问题上得到帮助。

我有一个每小时数据表,我在下面提供了一个简化示例:

datetimetimezone  ID  value
202007130000+0100 001 2
202007130100+0100 001 3
202007130200+0100 001 4
202007130300+0100 001 1
202007140000+0100 002 3
202007140100+0100 002 7
202007140200+0100 002 9
202007140300+0100 002 2

目标是创建一个输出,其中我将 datetimezone 剥离为“yyyymmdd”格式,并从每小时到每天汇总 (SUM) 值。所以我最终会得到一个新的输出,如下所示:

datetimetimezone  ID  value
20200713          001 10
20200714          002 21

我知道我可以使用 substr(datetimetimezone, 0, 8) 来获得所需的日期格式,但是我不确定如何将 ID 值从每小时聚合到每天,如上面的第二个表所示。欢迎任何帮助。

【问题讨论】:

【参考方案1】:

您似乎想要以下聚合查询:

select
    substr(datetimetimezone, 1, 8) yyyymm,
    id,
    sum(value) value
from mytable
group by substr(datetimetimezone, 1, 8), id

请注意,substr()1 开头,而不是 0

【讨论】:

以上是关于Hiveql - 将每小时数据汇总到每天的主要内容,如果未能解决你的问题,请参考以下文章