Sql 蜂巢嵌套分组方式

Sql 蜂巢嵌套分组方式,sql,hive,Sql,Hive,我试图识别重复的数据组,但我一直觉得这听起来很简单 下面是我的数据集 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 我尝试过超前/

我试图识别重复的数据组,但我一直觉得这听起来很简单

下面是我的数据集

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;
相邻值相同时,行号的差异是恒定的