【问题标题】:How to join multiple tables如何连接多个表
【发布时间】:2014-06-13 04:33:03
【问题描述】:

我正在尝试在 q 中加入多个表

        a                  b                  c
    key | valuea       key | valueb       key | valuec
     1  |   xa          1  |   xb          2  |   xc
     2  |   ya          2  |   yb          4  |   wc
     3  |   za  

预期的结果是

    key | valuea | valueb | valuec
     1  |   xa   |    xb  |   
     2  |   ya   |    yb  |   xc
     3  |   za   |        |   
     4  |        |        |   wc

可以简单地实现

    (a uj b) uj c

但是有谁知道我如何以功能形式做到这一点? 我不知道我实际上有多少张桌子

我基本上需要一个函数来遍历列表并将任意数量的键控表粉碎在一起......

f:{[x] x uj priorx};
f[] each (a;b;c;d;e...)

有人可以帮忙吗?或有什么建议?

谢谢!

【问题讨论】:

    标签: kdb q-lang


    【解决方案1】:

    另一个针对您的问题的解决方案,也比您的解决方案快一点:

    a (,')/(b;c)

    【讨论】:

      【解决方案2】:

      想通了... ;)

      f:{[r;t]r uj t};
      f/[();(a;b;c)]
      

      【讨论】:

      • 另一种写法是:() uj/(a;b;c)
      • 您可以通过使 uj monadic 进一步简化:(uj/)(a;b;c)uj/[(a;b;c)] 都可以解决问题
      猜你喜欢
      • 2012-06-27
      • 2018-05-21
      • 1970-01-01
      • 2019-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多