KDB+/Q:如何向 table 插入一列不符合要求的列表?
KDB+/Q: How to upsert to a table with a column of non conforming lists?
给定一个 table x
q)show meta x;
c | t f a
------| -----
time | z
datum |
q)show first x;
time | 2020.07.27T20:28:18.925
datum | (`FOO;1084300i;1.5f) // Non conforming type
数据是一列不符合类型(非统一)的列表,如何正确修改包含统一类型数据的更新插入,即
q)show meta y;
c | t f a
------| -----
time | z
datum | I
q)show first y;
time | 2020.07.26T23:51:10.790
datum | 993150 2543823 15100i
q)`x upsert y
'type
我尝试过使用 enlist;
q) y[`datum]:enlist each y[`datum];
q) show meta y;
c | t f a
------| -----
time | z
datum |
但它仍然抛出相同的错误:
q)`x upsert y
'type
关于如何实现这一点的一些建议会很棒,谢谢。
我相信你正在尝试做的事情应该有效,但不确定为什么它不适合你:
q)x:([] time:enlist .z.z; datum:enlist (`FOO;1084300i;1.5f))
q)y:([] time:enlist .z.z; datum:enlist (993150 2543823 15100i))
q)meta x
c | t f a
-----| -----
time | z
datum|
q)meta y
c | t f a
-----| -----
time | z
datum| I
q)x upsert y
time datum
---------------------------------------------
2020.07.30T15:51:13.333 `FOO 1084300i 1.5
2020.07.30T15:51:16.710 993150 2543823 15100
q)meta x upsert y
c | t f a
-----| -----
time | z
datum|
q)
你能仔细检查你的代码,你没有使用 insert 吗?
q)x insert y
'type
[0] x insert y
^
q)x upsert y
time datum
------------------------------------------
2020.07.27T20:28:18.925 `FOO 1084300i 1.5
2020.07.28T20:28:18.925 `FOO 1084300i 1.5
2020.07.29T23:51:10.790 725 1369 663
2020.07.30T23:51:10.790 9478 1588 8660
给定一个 table x
q)show meta x;
c | t f a
------| -----
time | z
datum |
q)show first x;
time | 2020.07.27T20:28:18.925
datum | (`FOO;1084300i;1.5f) // Non conforming type
数据是一列不符合类型(非统一)的列表,如何正确修改包含统一类型数据的更新插入,即
q)show meta y;
c | t f a
------| -----
time | z
datum | I
q)show first y;
time | 2020.07.26T23:51:10.790
datum | 993150 2543823 15100i
q)`x upsert y
'type
我尝试过使用 enlist;
q) y[`datum]:enlist each y[`datum];
q) show meta y;
c | t f a
------| -----
time | z
datum |
但它仍然抛出相同的错误:
q)`x upsert y
'type
关于如何实现这一点的一些建议会很棒,谢谢。
我相信你正在尝试做的事情应该有效,但不确定为什么它不适合你:
q)x:([] time:enlist .z.z; datum:enlist (`FOO;1084300i;1.5f))
q)y:([] time:enlist .z.z; datum:enlist (993150 2543823 15100i))
q)meta x
c | t f a
-----| -----
time | z
datum|
q)meta y
c | t f a
-----| -----
time | z
datum| I
q)x upsert y
time datum
---------------------------------------------
2020.07.30T15:51:13.333 `FOO 1084300i 1.5
2020.07.30T15:51:16.710 993150 2543823 15100
q)meta x upsert y
c | t f a
-----| -----
time | z
datum|
q)
你能仔细检查你的代码,你没有使用 insert 吗?
q)x insert y
'type
[0] x insert y
^
q)x upsert y
time datum
------------------------------------------
2020.07.27T20:28:18.925 `FOO 1084300i 1.5
2020.07.28T20:28:18.925 `FOO 1084300i 1.5
2020.07.29T23:51:10.790 725 1369 663
2020.07.30T23:51:10.790 9478 1588 8660