KQL- 仅列出数值
KQL- make list for numeric values only
我是 QKL 的新手,在做一些复杂的聚合时遇到困难。
我有一个包含两列的数据集 - 一列名为键和一个值。
我想列出所有具有相同键的 numeric 值,但将非数字值保留为单独的 .
例如,如果我的数据集如下所示
key
value
location
"CA"
location
"LA"
code
"2"
code
"3"
IP
"192.143.204.19"
意思是我想得到下面的table
key
value
location
"CA"
location
"LA"
code
["2","3"]
IP
"192.143.204.19"
summarize vals=make_set(val) by key
不会工作,因为它会结合“LA”和“CA”,当尝试这样做时 make_set_if
我在非数字值中得到空列表。
有没有人知道如何解决它?
谢谢!
你可以试试这个(分别处理两种情况,然后 union
计算结果):
let T = datatable(key:string, value:string)
[
"location", "CA",
"location", "LA",
"code", "2",
"code", "3",
"IP", "192.143.204.19",
]
| extend long_value = tolong(value)
;
T
| where isnull(long_value)
| union (
T
| where isnotnull(long_value)
| summarize value = tostring(make_list(long_value)) by key
)
| project key, value
key
value
location
CA
location
LA
IP
192.143.204.19
code
[2,3]
我是 QKL 的新手,在做一些复杂的聚合时遇到困难。 我有一个包含两列的数据集 - 一列名为键和一个值。 我想列出所有具有相同键的 numeric 值,但将非数字值保留为单独的 .
例如,如果我的数据集如下所示
key | value |
---|---|
location | "CA" |
location | "LA" |
code | "2" |
code | "3" |
IP | "192.143.204.19" |
意思是我想得到下面的table
key | value |
---|---|
location | "CA" |
location | "LA" |
code | ["2","3"] |
IP | "192.143.204.19" |
summarize vals=make_set(val) by key
不会工作,因为它会结合“LA”和“CA”,当尝试这样做时 make_set_if
我在非数字值中得到空列表。
有没有人知道如何解决它? 谢谢!
你可以试试这个(分别处理两种情况,然后 union
计算结果):
let T = datatable(key:string, value:string)
[
"location", "CA",
"location", "LA",
"code", "2",
"code", "3",
"IP", "192.143.204.19",
]
| extend long_value = tolong(value)
;
T
| where isnull(long_value)
| union (
T
| where isnotnull(long_value)
| summarize value = tostring(make_list(long_value)) by key
)
| project key, value
key | value |
---|---|
location | CA |
location | LA |
IP | 192.143.204.19 |
code | [2,3] |