Eats
Eats

Reputation: 607

How to filter distinct values for a kusto column

I want to keep distinct values for the given column. Assume I have the following columns out of which I want distint values for the column Values. Here is the input

Name       Values      Desc
B          "1,2,1,3"   Sample desc 1
A          "3,1,3"     Sample desc 2
A          "4"         Sample desc 3

This is the output I`m expecting:

Name       Values      Desc
B          "1,2,3"     Sample desc 1
A          "3,1"       Sample desc 2
A          "4"         Sample desc 3

I have this query in place:

Table
| project Name, Values, Desc

Please help with how to modify this kusto query to return the desired output.

Upvotes: 1

Views: 1087

Answers (3)

David דודו Markovitz
David דודו Markovitz

Reputation: 44991

datatable(Name:string, Values:string, Desc:string)
[
    'B' ,'"1,2,1,3"' ,"Sample desc 1"
   ,'A' ,'"3,1,3"'   ,"Sample desc 2"
   ,'A' ,'"4"'       ,"Sample desc 3"
]    
| mv-apply num = extract_all(@"(\d+)", Values) on (summarize Values = make_set(toint(num)))
Name Desc Values
B Sample desc 1 [1,2,3]
A Sample desc 2 [3,1]
A Sample desc 3 [4]

Fiddle

Upvotes: 1

David דודו Markovitz
David דודו Markovitz

Reputation: 44991

datatable(Name:string, Values:string, Desc:string)
[
    'B' ,'"1,2,1,3"' ,"Sample desc 1"
   ,'A' ,'"3,1,3"'   ,"Sample desc 2"
   ,'A' ,'"4"'       ,"Sample desc 3"
]    
| extend Values = strcat_array(set_union(split(trim('"', Values), ","), dynamic([])), ",")
Name Values Desc
B 1,2,3 Sample desc 1
A 3,1 Sample desc 2
A 4 Sample desc 3

Fiddle

Upvotes: 1

David דודו Markovitz
David דודו Markovitz

Reputation: 44991

datatable(Name:string, Values:string, Desc:string)
[
    'B' ,'"1,2,1,3"' ,"Sample desc 1"
   ,'A' ,'"3,1,3"'   ,"Sample desc 2"
   ,'A' ,'"4"'       ,"Sample desc 3"
]    
| extend Values = set_union(parse_json(strcat("[", trim('"', Values), "]")), dynamic([]))
Name Values Desc
B [1,2,3] Sample desc 1
A [3,1] Sample desc 2
A [4] Sample desc 3

Fiddle

Upvotes: 1

Related Questions