KQL执行两张表全外连接后合并关联列的问题咨询
KQL关联列合并修改方案
full outer join执行后,两张表的同名字段会自动添加数字后缀区分,你用到的关联列ver会拆分为ver(来自左表Table2)和ver1(来自右表Table1),无匹配值的位置会返回空,用coalesce()函数即可实现两列合并,同时需要对数值字段做空值处理,避免差值计算返回空。
修改后的完整代码如下:
let Table1 = datatable(ver: string, number:int) [ "1.0", 5, "2.0", 5, "2.1", 3 ]; let Table2 = datatable(ver: string, number:int) [ "2.0", 3, "2.1", 2, "3.0", 1 ]; Table2 | join kind = fullouter Table1 on ver // 合并两个关联列的版本号,取第一个非空值 | extend ver = coalesce(ver, ver1) // 无匹配的数值列默认补0,避免差值计算出错 | extend number = coalesce(number, 0), number1 = coalesce(number1, 0) | extend Delta = number1 - number // 可选:移除多余的ver1列,按需求调整输出字段顺序 | project ver, number, number1, Delta
核心函数说明:
coalesce():按参数顺序返回第一个非空的值,适合合并join后拆分的关联列,也可以用来给空的数值字段设置默认值0。
内容的提问来源于stack exchange,提问作者Kosh
相关产品推荐
相关产品推荐

