Kdb 如何查询此表以从符号列表中选择?

Kdb 如何查询此表以从符号列表中选择?,kdb,Kdb,我想从符号列表中筛选出'1'的记录 示例表: tab:([]a:((``1`2);`a;b);c:1 2 3); 我试过这个: select from tab where a = `1 还包括: select from tab where `1 in raze a 这些都不管用。嘿,你的标签上出现了一个'b错误,所以我换了b->3 q)tab a c ------- ``1`2 1 `a 2 3 3 q)select from tab where max each`1

我想从符号列表中筛选出'1'的记录

示例表:

tab:([]a:((``1`2);`a;b);c:1 2 3);
我试过这个:

select from tab where a = `1
还包括:

select from tab where `1 in raze a

这些都不管用。

嘿,你的标签上出现了一个
'b
错误,所以我换了b->3

q)tab
a     c
-------
``1`2 1
`a    2
3     3
q)select from tab where max each`1~''a
a    c
------
 1 2 1
q)select from tab where not max each`1~''a
a  c
----
`a 2
3  3

如果您有表格:

q)tab:([]a:((``1`2);`a;`b);c:1 2 3)
q)tab
a     c
-------
``1`2 1
`a    2
`b    3
您可以将中的关键字
与结合使用来删除所需的行:

q)select from tab where not `1 in/: a
a c
---
a 2
b 3

谢谢,这很有效!你知道使用每个右键背后的原理吗?因为
a
是一个嵌套的符号列表,你想检查
a
列中的每一行是否包含1<代码>非1 in/:a
1 in
应用于a的每一行。有效地做到了这一点:
1 in 1 2
1 in a
1 in b
=
100b
,然后
not
翻转以返回最后2行,这两行都可以实现,因为1是原子:
而不是'a