6

我想确保列x中的所有值都不小于 0.5,所以我这样做:

update x:max (x 0.5) from myTable

但这会产生错误(在Studio For KDB+中):

An error occurred during execution of the query.
The server sent the response:
type
Studio Hint: Possibly this error refers to wrong type, e.g `a+1

怎么了?

4

3 回答 3

9

您可以尝试使用 |

q)update x|0.5 from myTable
于 2014-04-14T10:20:28.930 回答
3

它应该工作。它对我有用。这是我用于测试的查询:

update x:max(x;0.5) from myTable

-- 检查 max 函数中的分号

于 2014-04-21T10:46:33.123 回答
1

试试kdb 向量条件,它类似于 SQL 中的 case-when:

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)
于 2014-04-14T09:58:07.757 回答