我在KQL中有一个简单的字符串,我想将其重新格式化如下:
给定这种格式的东西,例如:";ABC-123(8(、ABC-123;,我想把它转换成:;ABC-123(25(、DEF(4(、GHI(3(";
括号内始终是一个整数,括号内数字之前的值只是任何字符串。
基本上是将括号中的数字加起来,表示前面的每个逗号分隔的字符串
我试过研究split((和array_indexof((之类的东西来找出唯一值的位置,但我无法使其准确工作。
有人能在这里给我指正确的方向吗?
在可能的情况下,
datatable(id:int, col:string)
[
1, "ABC-123 (8), ABC-123 (12), ABC-123 (5), DEF (3), DEF (1), GHI (3)"
,2, "DEF (3), DEF (4), DEF (5), GHI (4), GHI (5), JKL (7)"
]
| mv-apply kv = extract_all(@"(S+)s*((d+))", col) on
(
summarize v = tostring(sum(toint(kv[1]))) by k = tostring(kv[0])
| summarize col = array_strcat(make_list(strcat(k, " (", v, ")")), ", ")
)
id | col |
---|---|
1 | ABC-123(25(、DEF(4(、GHI(3( |
2 | DEF(12(、GHI(9(、JKL(7( |