【问题标题】:Is there a quick way to inner join symbols in a single query?有没有一种在单个查询中快速连接符号的方法?
【发布时间】:2021-12-13 20:38:18
【问题描述】:

目前,假设我有一个包含 sym-date 行的数据库。

如果我想提取两个系列并在日期上对齐,我目前必须做两个查询然后加入它们:

pair: {[x;y]
  aa: select date, a: target1 from z where sym = x;
  bb: select date, b: target1 from z where sym = y;
  1!aa ij 1!bb
  }

corr[`AAPL;`MSFT]

在 KDB 中有没有更优雅的方法来做到这一点?

【问题讨论】:

    标签: kdb


    【解决方案1】:

    看起来您本质上想要对数据进行透视? https://code.kx.com/q/kb/pivoting-tables/

    q)t:([]date:2021.01.01 2021.01.01 2021.01.01;sym:`AAPL`MSFT`TSLA;target1:1.1 2.2 3.3)
    q)P:`AAPL`MSFT
    q)exec P#(sym!target1) by date:date from t
    date      | AAPL MSFT
    ----------| ---------
    2021.01.01| 1.1  2.2
    

    【讨论】:

    • 非常优雅的解决方案
    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多