我想运行一个常规的SQL风格左加入KDB +/Q.如何在kdb中执行高效的左连接?
- 我们得到的结果至少一行在离开 表的每一行。
- 如果右表中的一个以上的比赛,我得到一排 每个那些,不只是第一场比赛
测试数据
x:([];a:1 1 2 3; b:3 4 5 6)
y:([]; a:1 2 2 4; c:7 8 9 10)
最好我可以想到的版本是这样的:
这附加一个左连接,它只提供第一个匹配的内部连接,它提供所有匹配,然后删除重复项:
distinct ej[`a; x; y] , x lj `a xkey y
谁能为我提供一个在某些 其他方式更快和/或更好?例如,我真的很想避免使用不同的字体。
哇,谢谢! Connor,我还没有读k。 **你能解释一下你做了什么吗?** 再次感谢! – JSLover
这是q实现。 'q)nungroup:{$ [count x:0!x;,/ [翻转每个x],首先每个,/ [x]; x]}' –
@Connor Gervin:您的解决方案给出错误的结果。 'x:([] a:1 1 2 3 4; b:3 4 5 6 100)' –