Impala:运行总时间为1小时

时间:2019-02-05 07:53:19

标签: hadoop hive hql impala

我想计算1小时内每个ID的记录。我尝试了一些IMPALA查询,但没有任何运气。

我输入的数据如下:

enter image description here

预期输出为:

enter image description here

我尝试过:

select
      concat(month,'/',day,'/',year,' ',hour,':',minute) time, id,
     count(1) over(partition by id order by concat(month,'/',day,'/',year,' ',hour,':',minute) range between '1 hour' PRECEDING AND CURRENT ROW) request
       from rt_request
       where
    concat(year,month,day,hour) >= '2019020318' 
group by id, concat(month,'/',day,'/',year,' ',hour,':',minute)

但是我有例外。

RANGE仅在上下边界UNBOUNDED或一个UNBOUNDED和另一个CURRENT ROW上受支持。

任何建议/帮助将不胜感激。 预先谢谢你!

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找几天内同一小时内给定ID的计数。您只需使用row_number即可。

select time,id,row_number() over(partition by id,hour order by concat(month,'/',day,'/',year,' ',hour,':',minute)) as total
from tbl