List 在表的列表列中查找键的位置
我有一个表,其中一列List 在表的列表列中查找键的位置,list,kdb,q-lang,List,Kdb,Q Lang,我有一个表,其中一列keyname为int,另一列keylist为list为int。我正在尝试以以下方式创建另一列,该列位于我的表中keylist中的keyname位置: update keypos:{y?x} . (keyname;keylist) from tableName 或 这两种方法都会产生keypos,其值=表的大小 非常感谢您的任何见解。谢谢阿卡什。这很有效。你能解释一下为什么在非表设置下需要同时使用这两种方法吗?这是因为表列是以列表的形式实现的,这使得两者都是合适的。在非表用
keyname
为int
,另一列keylist
为list
为int
。我正在尝试以以下方式创建另一列,该列位于我的表中keylist
中的keyname
位置:
update keypos:{y?x} . (keyname;keylist) from tableName
或
这两种方法都会产生keypos
,其值=表的大小
非常感谢您的任何见解。谢谢阿卡什。这很有效。你能解释一下为什么在非表设置下需要同时使用这两种方法吗?这是因为表列是以列表的形式实现的,这使得两者都是合适的。在非表用法中,keypos是标量。所以keypos实际上是一个int列表,keylist是一个intsThanks@JamesLittleThanks-Akash列表。这很有效。你能解释一下为什么在非表设置下需要同时使用这两种方法吗?这是因为表列是以列表的形式实现的,这使得两者都是合适的。在非表用法中,keypos是标量。因此,keypos实际上是一个int列表,keylist是一个intsThanks@jameslittle列表它返回“表的大小”的原因是因为您正在对列表列表中的整个keyname列表执行单个查找。但是整个keyname列表不在列表列表中,因此它返回越界索引(恰好等于表的计数)。然后,Kdb将该单个原子转换为向量,使其成为有效列。我认为您要做的是在每个列表中查找每个键名。这就解释了为什么需要使用each tweet hanks@terrylysynch返回“表的大小”的原因是因为您正在将整个keyname列表单独查找到列表列表中。但是整个keyname列表不在列表列表中,因此它返回越界索引(恰好等于表的计数)。然后,Kdb将该单个原子转换为向量,使其成为有效列。我认为您要做的是在每个列表中查找每个键名。这就解释了为什么需要一个两者都有的hanks@terrylynch
update keypos:keylist?'keyname from tableName
update keypos:keylist?'keyname from tableName