我对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
目标是创建一个输出,其中我将datetimetimezone简化为“ yyyymmdd”格式,其值从每小时到每天汇总(SUM)。所以我最终将得到如下所示的新输出:
datetimetimezone ID value
20200713 001 10
20200714 002 21
我知道我可以使用substr(datetimetimezone,0,8)获得所需的日期格式,但是我不确定如何将ID值从每小时汇总到每天,如上面的第二张表所示。欢迎任何帮助。
答案 0 :(得分:0)
您似乎想要以下聚合查询:
select
substr(datetimetimezone, 1, 8) yyyymm,
id,
sum(value) value
from mytable
group by substr(datetimetimezone, 1, 8), id
请注意,substr()
始于1
,而不是0
。