#max #azure-log-analytics #kql
Вопрос:
Я пытаюсь написать запрос в kusto (kql), где я бы проверил, какие пользователи сколько раз обращались к каким проектам.
pageViews
| extend projectId = extract(@"/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})", 1, url)
| where url matches regex @'/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})'
and timestamp > ago(90d)
and isnotempty(user_Id)
| project timestamp, user_AccountId, user_Id, url, projectId
| summarize projectRequests = count() by user_Id, projectId
Мне нужно расширить эту функциональность, указав, когда был последний доступ
Я пытался:
pageViews
| extend projectId = extract(@"/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})", 1, url)
| where url matches regex @'/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})'
and timestamp > ago(90d)
and isnotempty(user_Id)
| project timestamp, user_AccountId, user_Id, url, projectId
| summarize projectRequests = count() by user_Id, projectId, LastEdit = max(timestamp)
но это дало мне
Функция » max » не может быть вызвана в текущем контексте
Как я могу расширить этот запрос, включив в него время последнего доступа к проекту?
Ответ №1:
Вы должны заменить:
| summarize projectRequests = count() by user_Id, projectId, LastEdit = max(timestamp)
с
| summarize projectRequests = count(), LastEdit = max(timestamp) by user_Id, projectId
Ответ №2:
Мне пришлось развернуться LastEdit = max(timestamp)
и ProjectRequests = count() by user_Id, projectId
.
Нравится:
pageViews
| extend projectId = extract(@"/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})", 1, url)
| where url matches regex @'/projects/([0-9a-f]{32}|[0-9a-zA-Z]{21,22})'
and timestamp > ago(90d)
and isnotempty(user_Id)
| project timestamp, user_AccountId, user_Id, url, projectId
| summarize LastEdit = max(timestamp), ProjectRequests = count() by user_Id, projectId