我见过解决类似问题的方法,但没有一种对我很有效。我也有信心,应该有办法让它发挥作用。
给我一张table
iddatetarget12020-01-01112020-01-02112020-01-03012020-01-04112020-01-04012020-06-01112020-06-02112020-06-03012020-06-04112020-06-0402220-01-011
id是bigint,target是int,date是date
我想计算每个id/日期在该日期之前的3个月和12个月内(含)相同id的行数和总和。输出示例:
iddatesum计数12计数1212020-01-011111020-01-0222212020-01-03232312020-01-04353512020-06-01114612020-06-02225712020-06-03236812020-06-043571022020-01-011111
我怎样才能在Hive里得到这一次的结果呢?我不确定是否应该使用分析函数(以及如何使用)、分组方式等。。。?
2条答案
按热度按时间ibps3vxo1#
如果你能估计间隔(1个月=30天):(gmb答案的改进)
或者,如果需要精确的间隔,可以进行自连接(但代价很高):
zujrkrfu2#
如果您可以将月数近似为天数,则可以在配置单元中使用窗口函数:
可以在同一查询中聚合: