https://ask.dolphindb.net/question/1073 计算结果不对

计算结果为

volumecumrank

volumecumrank

10

21

32

43

54

30

81 (此处错误,8对应6而不是1)

40

20

31

910

90


事实上 8这个数字 前面6行都小于8 , 所以8对应的值应为6. 后面就没看了


请先 登录 后评论

1 个回答

Shena Mao

不好意思有一个地方忘记改了,改一下update的一个条件就可以了。

t = table(1 2 3 4 5 3 8 4 2 3 9 9 as volume)
tt = select volume, iif(cumrank(volume) = (cumcount(volume)-1), cumrank(volume), 0) as newcount from t
tmp = select volume, newcount , bfill(iif(deltas(volume)>=0, rowNo(volume), NULL)) as flag from tt
aa = select volume, newcount,cumrank(volume) as cumrank from tmp context by flag
aa.update!(`cumrank,<newcount>,<(cumrank <= newcount)>).dropColumns!(`newcount)
aa

有时间的话您这边可以研究一下内部逻辑,方便您调试

请先 登录 后评论
  • 1 关注
  • 0 收藏,950 浏览
  • ddbuserex 提出于 2021-12-17 08:48

相似问题