KDB/Q:获取某列值的和
我想创建一个列,当另一列(KDB/Q:获取某列值的和,kdb,Kdb,我想创建一个列,当另一列(colB)的值等于某个值时,该列等于另一列(colA)中的值之和 如果没有该条件,我可以使用以下方法获得colA中所有值的总和: update TotalVal: sum colB by date from myTable 我试图通过使用 update GOT: sum colB by date from myTable where colA in (`abc,`edf) 这将为GOT创建正确的值,但GOT列仅在colA为abc或edf时才有值。这不是我真正想要的。
colB
)的值等于某个值时,该列等于另一列(colA
)中的值之和
如果没有该条件,我可以使用以下方法获得colA
中所有值的总和:
update TotalVal: sum colB by date from myTable
我试图通过使用
update GOT: sum colB by date from myTable where colA in (`abc,`edf)
这将为GOT
创建正确的值,但GOT
列仅在colA
为abc或edf时才有值。这不是我真正想要的。
为了可视化,我想要的是WANTED
date colA colB GOT WANTED
2020.08.17 abc 5 13 13
2020.08.17 mom 7 13
2020.08.17 xyz 8 13 13
2020.08.17 tuf 9 13
我只是自己修好的
update (GOT: sum colB where colA in (`abc,`edf)) by date from myTable
可以去掉一些括号:
update get:sum colB where colA in`abc`def by date from myTable
您也可以使用乘法而不是where来删除一些字符,尽管这是一种情况:update get:sum colB*colA in`abc`xyz by date from t t
谢谢,这很简洁,在这种情况下我应该如何解释*?它是否与中的具有相同的含义?否-假布尔值将值乘以零,因此有效求和仅对真值求和(因为它们将乘以布尔值1)。仅适用于某些聚合,sum
是其中之一