Как определить каждое среднее значение для подмножества столбцов в таблице Kusto без указания каждого столбца по имени

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

Создал запрос, который выводит строку, представляющую жестко закодированную версию моего запроса.

SomeTable
| getschema 
| where ColumnName endswith '_duration'
| summarize  Columns = make_list(ColumnName)
// Make the query
| project strcat('SomeTable | summarize avg(', array_strcat(Columns, '), avg('), ') by Day = startofday(Event_ReceivedTime)')

Моя цель - получить запрос, который не требует списка всех столбцов в таблице.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
2 770
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что вы хотите сделать все это сразу, а не генерировать строку запроса, а затем выполнять эту строку запроса? Если это так, проверьте оценить узкий (). Если ваш набор данных не слишком велик, это может помочь. Вот пример.

datatable(id:int, timestamp:datetime, x_duration:timespan, y_duration:timespan, z_duration:timespan)
[1, datetime(2019-07-19 17:51), time(01:00:00), time(02:00:00), time(03:00:00),
 2, datetime(2019-07-19 17:52), time(01:10:00), time(02:10:00), time(03:10:00),
 3, datetime(2019-07-19 17:53), time(01:10:10), time(02:10:10), time(03:10:10)]
| evaluate narrow()
| where Column endswith('_duration')
| extend Value = totimespan(Value)
| summarize avg(Value) by Column


Column      avg_Value
x_duration  01:06:43.3333333
y_duration  02:06:43.3333333
z_duration  03:06:43.3333333

Это сделало трюк! В моей таблице будут десятки тысяч записей, но, надеюсь, производительность не будет слишком плохой.

user1444760 19.07.2019 20:40

Другие вопросы по теме