使用 Over 在 kdb+ 中连接枚举列和符号列

Joining Enumerated and Symbol Column in kdb+ using Over

我正在查看两个表,一个有枚举列,另一个没有。我使用 (,/) 将它们连接在一起,它不会取消枚举数据。 (uj/) 和 last (,\) 都可以。有人知道为什么会这样吗?

KDB+ 4.0 2021.04.26 Copyright (C) 1993-2021 Kx Systems

q)enum:`a`b
q)t1:([]c1:`enum$`a`b)
q)t2:([]c1:`a`b)
q)(,/) (t1;t2)
c1
--------
`enum$`a
`enum$`b
`a
`b
q)(uj/) (t1;t2)
c1
--
a
b
a
b
q)last(,\) (t1;t2)
c1
--
a
b
a
b
q)```

我怀疑这是因为 ,/(以及 raze)被口译员给予特殊待遇,而其他人则没有。

实际的追加会给你想要的结果:

q)0N!({x,y}/)(t1;t2);
+(,`c1)!,`a`b`a`b

因此,尽管 {x,y}/ 看起来与 ,/ 相同,但由于幕后的“特殊待遇”,情况并非总是如此