azurekql

Kusto kql remove repeating consecutives in a dynamic array


I am wondering is there a way to remove consecutive duplicates. For example, if we have: [x,y,z,z,z,z, ...] I want [x,y,z, ...]

| project ClusterName, NodeName, UserName LoadError
| summarize LoadErrorSequence = make_list(LoadError) by ClusterName, NodeName, UserName
| extend LoadErrorSequenceJson = dynamic_to_json(LoadErrorSequence)
| summarize count() by LoadErrorSequenceJson

Solution

  • mv-apply + make_set()

    let data = datatable(original: dynamic)
    [
        dynamic(['x','y','z','z','z','z','x','x','z','y','y','z','z','x','y'])
    ];
    data
    | mv-apply original on (summarize make_set(original))
    
    set_original
    ["x","y","z"]