Hive 嵌套分组依据
Hive Nested Group By
我正在尝试识别重复的数据组,但一直觉得这听起来很简单。
以下是我的数据集。
ID, TIME, Speed
1, 10, 0
1, 11, 0
1, 12, 0
1, 12, 1
1, 13, 2
1, 14, 0
1, 15, 0
1, 16, 4
我正在尝试完成重复零速度的最小值和最大值。在这种情况下
ID, Min, Max, Value
1 , 10 , 12, 0
1, 14, 15, 0
我已经尝试过超前/滞后函数,但我能够获取每一行。但不是零集。我正试图在蜂巢中得到这个。
非常感谢任何帮助。
您可以使用不同的行号来做到这一点:
select id, speed, min(time), max(time)
from (select t.*,
(row_number() over (partition by id order by time) -
row_number() over (partition by id, speed order by time)
) as grp
from table t
) t
where speed = 0
group by id, speed, grp;
当相邻值相同时,行号的差异是恒定的。
我正在尝试识别重复的数据组,但一直觉得这听起来很简单。
以下是我的数据集。
ID, TIME, Speed
1, 10, 0
1, 11, 0
1, 12, 0
1, 12, 1
1, 13, 2
1, 14, 0
1, 15, 0
1, 16, 4
我正在尝试完成重复零速度的最小值和最大值。在这种情况下
ID, Min, Max, Value
1 , 10 , 12, 0
1, 14, 15, 0
我已经尝试过超前/滞后函数,但我能够获取每一行。但不是零集。我正试图在蜂巢中得到这个。
非常感谢任何帮助。
您可以使用不同的行号来做到这一点:
select id, speed, min(time), max(time)
from (select t.*,
(row_number() over (partition by id order by time) -
row_number() over (partition by id, speed order by time)
) as grp
from table t
) t
where speed = 0
group by id, speed, grp;
当相邻值相同时,行号的差异是恒定的。