Kdb + / q:循环初始化列表

时间:2015-01-22 16:18:46

标签: kdb

假设我创建一个空表:

test:([] name:`symbol$(); balance:`int$());

现在让我们用一行填充此列表:

insert[`test;(`John;1001)];

现在,如果我想按如下方式遍历此表:

n:0;
k:0;
f:{x%100}
do[count test; k+:f[test.balance[n]]; n+:1]

然后它给了我一个错误,因为它尝试使用函数f来使用(计算)空初始化值。

为什么这不起作用有什么特别的原因吗?

我如何确保 工作?

1 个答案:

答案 0 :(得分:2)

您正在做的事情可能有效,但它与最佳做法相去甚远。循环和索引不是要走的路。

您正在寻找的内容基本上是

test:([] name:`symbol$(); balance:`int$());
insert[`test;(`John;1001)];
insert[`test;(`Jane;2002)];

q)select sum f[balance] from test
balance
-------
30.03