如何查询在 Kusto 中同时具有空值和非空值的分组不同记录?
How to query for grouped distinct records that both have null and non-null values in Kusto?
我正在尝试创建一个查询,该查询 return 具有基于另一个非空(数据)列的不同(汽车)列的结果集。
在下面的示例中,如果在数据列中找到非空值,则 return 具有值的单个实例,如果没有,则 return 始终为空值保持第一列的清晰度。
let Car = datatable(car, data:string)
[
"mercedes", "fast",
"mercedes", null,
"tesla", null
"toyota", "good",
"sonata", null,
"sonata", null,
"sonata", "amazing"
];
因此所需的输出将是:
"mercedes", "fast",
"tesla", null,
"toyota", "good",
"sonata", "amazing",
谢谢!
一个选项是使用 set_difference()
和 make_set()
的组合:
make_set()
将创建一组 data
的所有唯一值(通过 car
,聚合键)
dynamic([""])
是一个空字符串数组
set_difference()
将产生前两个数组之间的差异 - 提供具有非空字符串(或空集)的集合
- 最后,通过访问结果集的第一个元素(使用
[0]
),您将获得第一个非空元素(如果集合为空,则为 null)
datatable(car:string, data:string)
[
"mercedes", "",
"mercedes", "fast",
"tesla", "",
"toyota", "good",
"sonata", "",
"sonata", "",
"sonata", "amazing"
]
| summarize data = set_difference(make_set(data), dynamic([""]))[0] by car
car
data
mercedes
fast
tesla
toyota
good
sonata
amazing
我正在尝试创建一个查询,该查询 return 具有基于另一个非空(数据)列的不同(汽车)列的结果集。
在下面的示例中,如果在数据列中找到非空值,则 return 具有值的单个实例,如果没有,则 return 始终为空值保持第一列的清晰度。
let Car = datatable(car, data:string)
[
"mercedes", "fast",
"mercedes", null,
"tesla", null
"toyota", "good",
"sonata", null,
"sonata", null,
"sonata", "amazing"
];
因此所需的输出将是:
"mercedes", "fast",
"tesla", null,
"toyota", "good",
"sonata", "amazing",
谢谢!
一个选项是使用 set_difference()
和 make_set()
的组合:
make_set()
将创建一组data
的所有唯一值(通过car
,聚合键)dynamic([""])
是一个空字符串数组set_difference()
将产生前两个数组之间的差异 - 提供具有非空字符串(或空集)的集合- 最后,通过访问结果集的第一个元素(使用
[0]
),您将获得第一个非空元素(如果集合为空,则为 null)
datatable(car:string, data:string)
[
"mercedes", "",
"mercedes", "fast",
"tesla", "",
"toyota", "good",
"sonata", "",
"sonata", "",
"sonata", "amazing"
]
| summarize data = set_difference(make_set(data), dynamic([""]))[0] by car
car | data |
---|---|
mercedes | fast |
tesla | |
toyota | good |
sonata | amazing |