Kusto:如何将列转换为行并按它们进行汇总
Kusto: How to convert columns to rows and summarize by them
我有一个 table 这样的:-
Type | shown | eaten |
-----------------------
a | 5 | 2 |
b | 6 | 23 |
c | 8 | 12 |
d | 19 | 11 |
e | 2 | 22 |
-----------------------
我想这样转换:-
Type | action | count |
-----------------------
a | shown | 5 |
a | eaten | 2 |
b | shown | 6 |
b | eaten | 23 |
c | shown | 8 |
c | eaten | 12 |
d | shown | 19 |
d | eaten | 11 |
e | shown | 2 |
e | eaten | 22 |
-----------------------
如何为此编写 kql 查询?
这是一个选项(请注意,我将一些列名称更改为大写,因此不需要转义)。
datatable(Type: string, shown: int, eaten: int) ["a", 5, 2,
"b", 6, 23,
"c", 8, 12,
"d", 19, 11,
"e", 2, 22]
| extend Temp = pack("shown",shown,"eaten",eaten )
| mv-expand kind=array Temp
| project Type, Action=tostring(Temp[0]), Count=toint(Temp[1])
给你:
let Data = datatable(Type:string, Shown:long, Eaten:long) [
"a", 5, 2,
"b", 6, 23,
"c", 8, 12
];
Data
| project Type, Pack = pack("Shown", Shown, "Eaten", Eaten)
| mv-expand Pack
| extend Action = tostring(bag_keys(Pack)[0])
| project Type, Action, Count = tolong(Pack[Action])
我有一个 table 这样的:-
Type | shown | eaten |
-----------------------
a | 5 | 2 |
b | 6 | 23 |
c | 8 | 12 |
d | 19 | 11 |
e | 2 | 22 |
-----------------------
我想这样转换:-
Type | action | count |
-----------------------
a | shown | 5 |
a | eaten | 2 |
b | shown | 6 |
b | eaten | 23 |
c | shown | 8 |
c | eaten | 12 |
d | shown | 19 |
d | eaten | 11 |
e | shown | 2 |
e | eaten | 22 |
-----------------------
如何为此编写 kql 查询?
这是一个选项(请注意,我将一些列名称更改为大写,因此不需要转义)。
datatable(Type: string, shown: int, eaten: int) ["a", 5, 2,
"b", 6, 23,
"c", 8, 12,
"d", 19, 11,
"e", 2, 22]
| extend Temp = pack("shown",shown,"eaten",eaten )
| mv-expand kind=array Temp
| project Type, Action=tostring(Temp[0]), Count=toint(Temp[1])
给你:
let Data = datatable(Type:string, Shown:long, Eaten:long) [
"a", 5, 2,
"b", 6, 23,
"c", 8, 12
];
Data
| project Type, Pack = pack("Shown", Shown, "Eaten", Eaten)
| mv-expand Pack
| extend Action = tostring(bag_keys(Pack)[0])
| project Type, Action, Count = tolong(Pack[Action])