【问题标题】:KDB How to join tables with different column namesKDB 如何连接具有不同列名的表
【发布时间】:2019-01-15 09:47:34
【问题描述】:

如果我有以下表格:

  t1:([] c1: 1 2 3; c2: 120 234 876)
  t2:([] cd1:1 2; d: 999 899)

如何连接t1.c1 = t2.cd2c1cd2 不是链接列的表?

【问题讨论】:

    标签: join kdb


    【解决方案1】:

    您希望使用左连接 lj,如下所示:

    q)t1: ([] c1: 1 2 3; c2: 120 234 876)
    q)t2:([] cd1:1 2; d: 999 899)
    q)t1 lj 1!`c1 xcol t2
    c1 c2  d
    ----------
    1  120 999
    2  234 899
    3  876
    

    我们使用xcol 重命名t2 中的cd1 列以匹配t1 中的c1

    您可以在https://code.kx.com/q/ref/joins/阅读更多关于联接的信息

    【讨论】:

    • 感谢您的回复..只是检查我的理解。 1!是重命名 t2 的第一列。这样对吗?那么它将如何用于两列连接?
    • 'xcol' 将列 cd1 重命名为 c1。 1!将第一列作为主键,在这种情况下是 c1 。您可以轻松地将其扩展到多列连接。阅读有关此特定案例的联接和左联接:code.kx.com/q/ref/joins/#lj-ljf-left-join
    猜你喜欢
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2017-06-18
    • 2016-03-24
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多