如何根据某列的值逐段统计

如下图,

attachments-2021-06-L3U71Bjm60cc4f7141e6f.png

表中position那一列,是11111-1-1-1-1-1-11111111-1-1-1-1交替循环的,我想看每个1111或者-1-1-1-1这段,就比如说11111这段的fist/last-1,逐段统计,这种情况要怎么办?

比如

x=1 2 3 0 3 2 1 4 5
y=1 1 1 -1 -1 -1 1 1 1
t=table(x,y)

现在我是想返回一个结果,比如(3/1-1),(2/0-1),(5/1-1)三份

我现在是11111-1-1-1-1-1-11111111-1-1-1-1


请先 登录 后评论

1 个回答

wale

dolphindb有个segment函数,可以分段统计:

 select first(x) \ last(x) - 1   from t group by segment(y)

attachments-2021-06-Gux5g5iL60cc50831eb91.png

请先 登录 后评论