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 - 将每小时数据汇总到每天的主要内容,如果未能解决你的问题,请参考以下文章