KDB:如何创建序列号

KDB: how to create a sequence number

我想创建一个列,如果另一列的值发生变化,该列的值会增加。这是一个例子:

Party   sequence
ABC     1
ABC     1
ABC     1
OOO     2
OOO     2
PIM     3
AAW     4
ABC     5
TOM     6
TOM     6
TOM     6

我试过的是

update sequence: ?[party=prev party;prev sequence;(prev sequence) + 1]

但是,我一直收到错误消息:“更正提示:长度” 我怎样才能完成这个任务?

Differ 将为您提供每个更改的布尔值,然后您可以对布尔值进行滚动求和:

q)update sequence:sums differ party from ([]party:`ABC`OOO`PIM`AAW`ABC`TOM where 3 2 1 1 1 3)
party sequence
--------------
ABC   1
ABC   1
ABC   1
OOO   2
OOO   2
PIM   3
AAW   4
ABC   5
TOM   6
TOM   6
TOM   6