如何为KDB中的每一行应用max函数?

如何为KDB中的每一行应用max函数?,kdb,q-lang,Kdb,Q Lang,我想确保列x中的所有值都不小于0.5,因此: update x:max (x 0.5) from myTable 但这在以下方面给出了一个错误: 出什么问题了?在SQL中尝试类似的情况: q)t:([] a:6?.9) q)t a --------- 0.4237094 0.5712045 0.8705158 0.2075746 0.8549775 0.3951729 q)update ?[a<0.5;0.5;a] from t a --------- 0.5 0.5712045 0

我想确保列
x
中的所有值都不小于0.5,因此:

update x:max (x 0.5) from myTable
但这在以下方面给出了一个错误:

出什么问题了?

在SQL中尝试类似的情况:

q)t:([] a:6?.9)

q)t
a
---------
0.4237094
0.5712045
0.8705158
0.2075746
0.8549775
0.3951729

q)update ?[a<0.5;0.5;a] from t
a
---------
0.5
0.5712045
0.8705158
0.5
0.8549775
0.5
q)
q)t:([]a:6?.9)
q) t
A.
---------
0.4237094
0.5712045
0.8705158
0.2075746
0.8549775
0.3951729
q) 更新?[a您可以尝试使用|

q)update x|0.5 from myTable

应该行得通。对我来说行得通。这是我用于测试的查询:

update x:max(x;0.5) from myTable

--max function中的Check分号

对于这个简单的例子来说,Vector conditional是不必要的,可读性较差,而且在我的机器上,速度要慢4倍。非常好-我没有想到这会起作用,但它确实起作用。它的速度与(公认更惯用的)x|.5一样快
update x:max(x;0.5) from myTable