KQL-从列表中删除重复项并求和值



我在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, ")")), ", ")
)
idcol
1ABC-123(25(、DEF(4(、GHI(3(
2DEF(12(、GHI(9(、JKL(7(

最新更新