【问题标题】:kdb items being list and convert into rowkdb 项目被列出并转换为行
【发布时间】:2018-05-02 01:32:55
【问题描述】:

我有以下 kdb 表

name   value    price
-------------------------
Paul   1 2      3 4

其中 value 和 price 是列表。我怎样才能将它们转换成

name   value    price
------------------------------
Paul   1        3
Paul   2        4

?谢谢!!

【问题讨论】:

    标签: kdb


    【解决方案1】:

    ungroup 是您在此处寻找的内容。

    顺便说一句,“value”是 q 中的保留字,如果您尝试将其用作列名,您应该会得到一个 'assign 错误。

    q)t:([]name:`Paul;value:enlist 1 2;price:enlist 3 4)
    'assign
    q)t:([]name:`Paul;val:enlist 1 2;price:enlist 3 4)
    q)ungroup t
    name val price
    --------------
    Paul 1   3
    Paul 2   4
    

    【讨论】:

    • 是的。您还可以使用 .Q.id 重命名无效的列名,但显然最好不要首先使用坏名:.Q.id flip `name`value`price!(1#`Paul;enlist 1 2;enlist 3 4)
    • 谢谢!!如果我有空元素怎么办?例如,val 中的某些元素实际上是 ()
    • 在任何一种情况下它仍然可以工作,但是你所拥有的是一个空列表。 q 中的 null 有一个类型在这里阅读更多:code.kx.com/q4m3/2_Basic_Data_Types_Atoms/#27-nulls
    猜你喜欢
    • 2022-08-12
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2020-12-21
    • 2021-12-05
    • 2012-08-11
    相关资源
    最近更新 更多