Kdb 为什么可以';我不能在update语句中添加条件吗?
我有一张桌子:Kdb 为什么可以';我不能在update语句中添加条件吗?,kdb,Kdb,我有一张桌子: t:([]val:10?100) 我想添加一个带有cond语句的列:如果值小于55,只需将其设置为55。但是,update语句不适用于以下情况: updatenewval:$[val因为val是一个向量,所以必须使用条件向量 update newVal:?[val<55;55;val] from t 因为val是一个向量,所以必须使用条件向量 update newVal:?[val<55;55;val] from t 我认为@terrylynch是完美的。但有时
t:([]val:10?100)
我想添加一个带有cond语句的列:如果值小于55,只需将其设置为55。但是,update语句不适用于以下情况:
updatenewval:$[val因为val是一个向量,所以必须使用条件向量
update newVal:?[val<55;55;val] from t
因为val是一个向量,所以必须使用条件向量
update newVal:?[val<55;55;val] from t
我认为@terrylynch是完美的。但有时当向量条件太难使用时,也可以在q-sql语句中使用lambda。使用向量条件的原因很简单,因为列是一个列表
q)t
val
---
12
10
1
90
73
90
43
90
84
63
q)update newVal:{$[x<55;55;x]}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63
q)update newVal:{x|55}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63
q)t
瓦尔
---
12
10
1.
90
73
90
43
90
84
63
q) update newVal:{$[x我认为@terrylynch是完美的。但有时当向量条件太难使用时,您也可以在q-sql语句中使用lambda。使用向量条件的原因很简单,因为列是一个列表
q)t
val
---
12
10
1
90
73
90
43
90
84
63
q)update newVal:{$[x<55;55;x]}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63
q)update newVal:{x|55}each val from t
val newVal
----------
12 55
10 55
1 55
90 90
73 73
90 90
43 55
90 90
84 84
63 63
q)t
瓦尔
---
12
10
1.
90
73
90
43
90
84
63
q) update newVal:{$[x值得一提的是'lambda each'引入了性能影响,特别是对于较大的表。值得一提的是'lambda each'引入了性能影响,特别是对于较大的表。