如何用KQL拆分表格数组列并关联原列值?
KQL实现数组列拆分为多行并关联对应列
要将Table1中Column2的数组元素拆分为单独行,并保留与Column1的关联,直接使用KQL的mv-expand操作符即可实现,以下是具体示例:
1. 模拟原始表数据
let Table1 = datatable(Column1:string, Column2:dynamic) [ "A", dynamic([1,2,3]), "B", dynamic([4,5]), "C", dynamic([]) ];
2. 基础展开查询
这会将数组元素拆分为单独行,同时自动关联对应的Column1值,默认会过滤掉数组为空的行:
Table1 | mv-expand Column2 to typeof(int)
执行后结果:
| Column1 | Column2 |
|---|---|
| A | 1 |
| A | 2 |
| A | 3 |
| B | 4 |
| B | 5 |
3. 保留空数组行的查询
如果需要保留Column2为空数组的行,添加kind=array参数即可:
Table1 | mv-expand kind=array Column2 to typeof(int)
执行后结果:
| Column1 | Column2 |
|---|---|
| A | 1 |
| A | 2 |
| A | 3 |
| B | 4 |
| B | 5 |
| C |
参数说明
to typeof(int):指定展开后Column2的数据类型,匹配数组元素的实际类型,避免默认的dynamic类型,便于后续计算或筛选。kind=array:强制保留数组为空的行,此时展开后的Column2值为null。
内容的提问来源于stack exchange,提问作者SteveM
相关产品推荐
相关产品推荐

