Как я могу объединить дубликаты 1 столбца, а затем получить несколько результатов в одной строке другого столбца?

#azure #azure-active-directory #kql #azure-data-explorer

#azure #azure-active-directory #kql #azure-data-explorer

Вопрос:

Я очень новичок в kql, и я застрял на этом запросе. Я хочу, чтобы запрос отображал, какие пользователи выполняли входы в систему из разных состояний. Я создал этот запрос, но я не знаю, как подсчитать результаты в столбце «имена».

 SigninLogs
| project tostring(LocationDetails.state), UserDisplayName
| extend p =pack( 'Locations', LocationDetails_state)
| summarize names = make_set(p)  by UserDisplayName
 

Это генерирует столбец «имена» с такой строкой:

 [{"Locations":"Arkansas"},{"Locations":"Iowa"},{"Locations":""}]
 

Вот простой запрос, который собирает все входы от пользователей и другой столбец с местоположениями.

 SigninLogs
| where ResultType == "0"
| summarize by UserDisplayName, tostring(LocationDetails.state)
 

Есть ли способ объединить дубликаты столбца users, а затем отобразить каждое местоположение во втором? Если да, могу ли я подсчитать каждое местоположение, чтобы отфильтровать, где местоположение> 1?

Ответ №1:

Я хочу, чтобы запрос отображал, какие пользователи выполняли входы в систему из разных состояний

Предполагая, что я правильно понял ваш вопрос, это может сработать (с использованием array_length() ):

 SigninLogs
| project State = tostring(LocationDetails.state), UserDisplayName
| summarize States = make_set(State) by UserDisplayName
| where array_length(States) > 1 // filter users who had sign-ins from *more than 1 state*
 

Комментарии:

1. Спасибо! это работает, я чувствовал, что пробовал это, но, думаю, нет