- KDB+ - 教程
- KDB+ - 概述
- KDB + - 架构( Architecture)
- Q编程语言(Q Programming Language)
- Q语言 - 类型转换(Type Casting)
- Q语言 - 时间数据(Temporal Data)
- Q Language - Lists
- Q语言 - 索引(Indexing)
- Q语言 - 词典(Dictionaries)
- Q Language - Table
- Q语言 - 动词和副词(Verb & Adverbs)
- Q Language - Joins
- Q语言 - 功能(Functions)
- Q语言 - 内置函数(Built-in Functions)
- Q语言 - 查询(Queries)
- Q - 进程间通信(Q - Inter-Process Communication)
- Q - Message Handler (.Z Library)
- Q语言 - 属性(Attributes)
- Q语言 - 功能查询(Functional Queries)
- Q语言 - 表算法(Table Arithmetic)
- Q语言 - 磁盘上的表(Tables on Disk)
- Q语言 - 维护功能(Maintenance Functions)
- KDB+ - 有用的资源
- KDB+ - 讨论
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Q Language - Joins
在q语言中,我们根据提供的输入表和我们想要的连接表的类型提供不同类型的连接。 连接组合来自两个表的数据。 除了外键追逐,还有其他四种方式可以连接表格 -
- Simple join
- Asof join
- Left join
- Union join
在本章中,我们将详细讨论这些连接中的每一个。
简单加入
简单连接是最基本的连接类型,使用逗号','执行。 在这种情况下,两个表必须符合type conformant ,即两个表具有相同顺序的列数和相同的键。
table1,:table2/table1 is assigned the value of table2
对于具有相同长度的表,我们可以使用逗号 - 每个连接来横向连接。 其中一个表可以在这里键入,
Table1, `Table2
Asof Join (aj)
它是最强大的连接,用于在另一个表中获取一个表中字段的值。 一般来说,它用于获得每笔交易时的现行买入价和卖出价。
一般格式
aj[joinColumns;tbl1;tbl2]
例如,
aj[`sym`time;trade;quote]
例子 (Example)
q)tab1:([]a:(1 2 3 4);b:(2 3 4 5);d:(6 7 8 9))
q)tab2:([]a:(2 3 4);b:(3 4 5); c:( 4 5 6))
q)show aj[`a`b;tab1;tab2]
a b d c
-------------
1 2 6
2 3 7 4
3 4 8 5
4 5 9 6
Left Join(lj)
这是aj的一个特例,其中第二个参数是键控表,第一个参数包含右参数键的列。
一般格式
table1 lj Keyed-table
例子 (Example)
q)/Left join- syntax table1 lj table2 or lj[table1;table2]
q)tab1:([]a:(1 2 3 4);b:(2 3 4 5);d:(6 7 8 9))
q)tab2:([a:(2 3 4);b:(3 4 5)]; c:( 4 5 6))
q)show lj[tab1;tab2]
a b d c
-------------
1 2 6
2 3 7 4
3 4 8 5
4 5 9 6
Union Join (uj)
它允许创建具有不同模式的两个表的并集。 它基本上是简单连接的扩展(,)
q)tab1:([]a:(1 2 3 4);b:(2 3 4 5);d:(6 7 8 9))
q)tab2:([]a:(2 3 4);b:(3 4 5); c:( 4 5 6))
q)show uj[tab1;tab2]
a b d c
------------
1 2 6
2 3 7
3 4 8
4 5 9
2 3 4
3 4 5
4 5 6
如果在键控表上使用uj,则主键必须匹配。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论