在DolphinDB中,如何对连续的相同值分组

比如有表如下:

t = table(1 1 1 1 2 2 2 2 1 1 1 1 3 3 3 as bs_flag)  

希望根据 bs_flag 进行分组,连续相同的 bs_flag 的行group 为一组
即希望分组后是
1
2
1
3
如何写sql语句?

阅读 3.1k
2 个回答

可以用

select first(bs_flag)  from t group by segmentby(first, bs_flag.rowNo(), bs_flag)

select first(bs_flag), first(bs_flag.rowNo()) from t group by eachPre(ne, bs_flag).cumsum()
x = 1 2 1 2 1 2 1 2 1 2 1 2

y = 0 0 1 1 1 2 2 1 1 3 3 2

t = table(x,y)

select *, cumsum(x) from t context by segment(y);
 

y x cumsum_x

- - --------

0 1 1       

0 2 3       

1 1 1       

1 2 3       

1 1 4       

2 2 2       

2 1 3       

1 2 2       

1 1 3       

3 2 2       

3 1 3       

2 2 2
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题