You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KDB/q如何基于两列执行左连接操作

在KDB/q中基于多列执行左连接的解决方案

核心实现代码

先构造示例表(用于验证逻辑):

WORKING_TABLE: ([] Store: `AXA`DEP`ZOO`REP; ID: `2B`2B`2B`3C; Cost: 2.3 2.8 5.0 8.7; Date: 2023.01.01 2023.01.01 2023.01.02 2023.04.04)
INFO_TABLE: ([] ID: `2B`2B`3C; Tax: 0.5 0.9 1.0; Date: 2023.01.01 2023.01.02 2023.04.04)

执行基于ID和Date的左连接:

result: WORKING_TABLE lj[`ID`Date; INFO_TABLE]

代码说明

  • lj是q的左连接函数,会完整保留左表(WORKING_TABLE)的所有行,仅匹配右表(INFO_TABLE)中ID和Date完全一致的记录,将右表的Tax列追加到左表。
  • 若右表与左表的连接键列顺序不同,可先用xcol调整顺序(本例中顺序一致,可省略):
    result: WORKING_TABLE lj `ID`Date xcol INFO_TABLE
    

执行结果

运行代码后,result将生成目标表:

StoreIDCostDateTax
AXA2B2.32023.01.010.5
DEP2B2.82023.01.010.5
ZOO2B5.02023.01.020.9
REP3C8.72023.04.041.0

补充说明

  • 若左表某行在右表中无匹配的ID+Date组合,Tax列会填充空值0N;
  • 若右表存在同一ID+Date组合的多条记录,左连接会将左表匹配行与这些记录分别组合,生成多行结果。

内容的提问来源于stack exchange,提问作者mmv456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:17:12