Кусто суммирует уникальные вхождения значения в столбец - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующий набор данных:

let t1 = datatable(id:string, col1:string, col2:string)
[
    '1', 'ValueA', 'AT',
    '2', 'ValueC', 'AT',
    '3', 'ValueA', 'AT',
    '4', 'ValueB', 'AT',
    '1', 'ValueC', 'v-username',
];
t1 
| summarize (Id) by col1

Моя цель - подсчитать количество вхождений значений в столбце 1 для каждого идентификатора. Поскольку ID = 1 встречается дважды, мне нужно решить, брать ли ValueA или Value C. Это определяется значением col2. Если col2 начинается с «v-», тогда возьмите значение из этой строки. Когда я использую "summarize (Id) by col1", я получаю:

ValueA,2
ValueC,2
ValueB,1
ValueD,1
Total:6

Ожидаемый результат:

ValueA,1
ValueC,2
ValueB,1
ValueD,1
Total:5

Возможно ли достичь с помощью Kusto?

1 Ответ

0 голосов
/ 05 мая 2020

а. при запуске ... | summarize (id) by col1" you should get a semantic error as there's no aggregation function specified (e.g. you could have run ... | суммировать dcount (id) по col1`)

b. неясно, откуда взялось ValueD, 1 в ожидаемом результате. поскольку ваше выражение datatable не содержит записи с ValueD

c. если бы мне пришлось угадывать решение вашего вопроса, несмотря на a и b , это было бы мое предположение:

let t1 = datatable(id:string, col1:string, col2:string)
[
    '1', 'ValueA', 'AT',
    '2', 'ValueC', 'AT',
    '3', 'ValueD', 'AT',
    '4', 'ValueB', 'AT',
    '1', 'ValueC', 'v-username',
];
t1 
| summarize c = dcount(id) by col1
| as T
| union (T | summarize c = sum(c) by col1 = "Total")
...