怎么把2个表按主键拼成1个表

两类因子表,一类是保存数值的,一类是保存字符串的,读出来分别变成表2,表3,现在想按主键拼成表1返回给用户,有没有简便的方法。


attachments-2023-07-hmiO7e2z64c62827dbbbd.png


我写了下列代码,不知道是否是最优解:

t2 = table(1 2 3 as A, `a`b`c as B, rand(1.0, 3) as C, rand(1.0, 3) as D, now() + 1..3 as F)
t3 = table(1..3 as A,  `a`b`d as B,  take(`TESTE`TESTD, 3) as E, now() + 11..13 as F)

tmp = table(1:0, `A`B`C`D`E`F, [INT, SYMBOL, DOUBLE, DOUBLE,  STRING, TIMESTAMP])

tmp.tableInsert(dict(t2.colNames(), t2.values()))
tmp.tableInsert(dict(t3.colNames(), t3.values()))

t1 = select A, B, firstNot(C,NULL) as C, firstNot(D, NULL) as D, firstNot(E,NULL) as E, max(F) as F from tmp group by A, B


请先 登录 后评论

1 个回答

wale

用fj可以实现:

t2 = table(1 2 3 as A, `a`b`c as B, rand(1.0, 3) as C, rand(1.0, 3) as D, now() + 1..3 as F)
t3 = table(1..3 as A,  `a`b`d as B,  take(`TESTE`TESTD, 3) as E, now() + 11..13 as F)
t1=select nullFill(A, t3.A) as A, nullFill(B, t3.B) as B, C , D, E, nullFill(F, t3.F)   from fj(t2, t3, `A`B)

t1执行后结果如下:

A	B	C	D	E	nullFill_F
1	a	0.989	0.2829	TESTE	2023.07.30T22:08:59.627
2	b	0.9045	0.6158	TESTD	2023.07.30T22:08:59.628
3	c	0.7869	0.5344		2023.07.30T22:08:59.629
3	d			TESTE	2023.07.30T22:08:59.639

请先 登录 后评论
  • 1 关注
  • 0 收藏,485 浏览
  • Alex 提出于 2023-07-30 17:06

相似问题