如何在Kusto中基于最新日期关联两张表并保留左表匹配项
在Kusto中关联表并匹配最新日期记录
要实现从table1提取唯一名称,关联table2中对应名称的最新日期记录,且保留左表所有匹配项,你可以按以下方式编写查询:
// 先筛选出table2中每个名称的最新日期记录 let latest_weight_records = table2 | summarize arg_max(date, *) by name; // 关联table1的唯一名称与处理后的最新记录 table1 | distinct names | join kind=left latest_weight_records on $left.names == $right.name
代码说明:
- 首先用
let定义临时表latest_weight_records:通过summarize arg_max(date, *) by name,按name分组,提取每组中date最大的完整行数据(*代表保留该行所有列),这样就得到了每个名称的最新体重记录。 - 从table1提取唯一名称后,使用
join kind=left关联临时表,这样table1中的所有名称都会被保留——比如示例中的John,由于table2没有他的记录,对应的name、weight、date字段会显示null。如果只需要保留table1和table2都存在的条目,把kind=left改成kind=inner即可。
示例执行结果:
| names | name | weight | date |
|---|---|---|---|
| Alex | Alex | 168 | 2023-01-28 |
| John | null | null | null |
| Mary | Mary | 120 | 2022-08-28 |
内容的提问来源于stack exchange,提问作者mnm
相关产品推荐
相关产品推荐

