Уплощение списка списков в запросе Kusto
У меня есть запрос Kusto, который возвращает ряд строк, каждая из которых содержит список с разделителями точкой с запятой. Мне удалось разделить содержимое каждой строки в список, но я не смог сгладить этот список. К сожалению, я совсем новичок в использовании Kusto, поэтому немного борюсь.
Я пытался использовать функции "union", "join", "flatten" и искал функции, которые включают слово "merge" или "selectmany" (функцию, которую я использовал бы для выравнивания в C# с linq). Я также пробовал искать похожие функции sql, поэтому я могу найти эквивалентный запрос в Kusto, но мне не повезло.
Я использую запрос:
| where Nicknames != ""
| project split(Nicknames, ";")
Результаты примерно такие:
[
"Joe",
"Jim",
"JJ"
]
-------------
[
"Abe"
]
-------------
[
"Hal",
"Harry"
]
и я хотел бы использовать что-то вроде (псудо-Кусто):
UserInfo
| where Nicknames != ""
| project split(Nicknames, ";")
| flatten results
| distinct results
... где "результаты" - это таблицы, возвращенные предыдущей операцией.
1 ответ
Взгляните, например, на оператора mv-expand
datatable(Nicknames:string)["Joe;Jim;JJ", "Abe", "Hal;Harry"]
| extend Nicknames = split(Nicknames, ";")
| mv-expand Nicknames to typeof(string)
| distinct Nicknames