Как запросить столбец массива с параметром массива в Azure Data Explorer (kusto) - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть таблица с динамическим c столбцом, в котором я храню список идентификаторов, и у меня есть параметр, по которому можно передать список идентификаторов. Итак, я хочу получить строки, где любое из входных значений присутствует в столбце таблицы. Примерно так:

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where ids has_any(i_ids);

Мне нужно получить строки 1 и 3, но это не получается с сообщением: исходное выражение имеет тип «dynamici c» и не может быть сравнено с аргументами цифр c. Можете ли вы помочь мне написать правильный запрос?

1 Ответ

2 голосов
/ 24 апреля 2020

вы можете попробовать использовать set_intersect(): https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/setintersectfunction

declare query_parameters (        
    i_ids: dynamic = dynamic([15,33,37])
);
let T = datatable(id: int, ids:dynamic)
[
    1, dynamic([10, 15, 18]),
    2, dynamic([22,25,29]),
    3, dynamic([31, 33, 37]),
];
T
| where array_length(set_intersect(ids, i_ids)) > 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...