我有两个带有sym和lp的表(见下文)。我想从tab1中抽出没有对应于符号的完整符号集的每一行 来自tab2的相同符号。
tab1:([]sym:`EUR`AUD`GBP;lp:(`aa`bb`cc;`dd`ee;`ff`gg`aa`ee))
tab2:([]sym:`EUR`AUD`GBP;lp:(`aa`bb`ff`cc;`ee`dd;`gg`ff`ee`aa`rr`xx))
即我的结果应该是:
tab3:([]sym:`EUR`GBP;lp:(`ff;`rr`xx))
谢谢
答案 0 :(得分:1)
我认为这可能符合您的需求:
q)b: where 0 <> count each a: (exec lp from tab2) except' (exec lp from tab1)
q)update lp: a b from tab1 b
sym lp
----------
EUR ,`ff
GBP `rr`xx
我所做的一个假设是,两个表中的符号总是相同的,这是真的吗?
答案 1 :(得分:0)
键控表上的except
在这里也可以工作:
q)(1!tab2)except''1!tab1
sym| lp
---| ----------
EUR| ,`ff
AUD| `symbol$()
GBP| `rr`xx
虽然性能不好。