Как получить доступ к значению в таблице kusto по определенному номеру строки и определенному номеру столбца?

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

Example:
Customer Month  Usage. %Change
ABC       8.     10.      0
DEF       9.     12.      120
GHI       10.    10.      100
JKL.      11.    15.      150

Расчет, который я ищу, следующий: - Требуется использование 1-го месяца, что составляет 10. Со следующего месяца это будет

12/10 * 100 = 120
10/10 * 100 = 100
15/10 * 100 = 150

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


person Sanjotha Sahair    schedule 12.11.2020    source источник


Ответы (1)


Как насчет этого?

let events = datatable(Customer: string, Month:int, Usage:real) [
"ABC",       8,     10,
"DEF",      9,     12,
"GHI",      10,    10,
"JKL",      11,    15];
//
let first_usage = toscalar(events | summarize arg_min(Month, Usage) | project Usage); 
events | extend Change = 100*Usage/first_usage

Переменная first_usage устанавливается в значение Usage для самого низкого месяца. Вы можете просто выбрать первую строку, если уверены, что они уже отсортированы. Мы должны преобразовать его в скаляр, чтобы использовать в будущих вычислениях.

Затем мы добавляем новый столбец «Изменить» с вашим расчетом. Первая строка будет 100 (а не 0), но это также можно исправить, если это важно, например, используя iff() для другой обработки первой строки:

let events = datatable(Customer: string, Month:int, Usage:real) [
"ABC",       8,     10,
"DEF",      9,     12,
"GHI",      10,    10,
"JKL",      11,    15];
//
let first_usage = toscalar(events | summarize arg_min(Month, Usage) | project Usage); 
events
| serialize
| extend r=row_number()
| extend Change = iff(r==1, 0.0, 100*Usage/first_usage)
| project-away r
person joelby    schedule 15.11.2020