Кусто ЛЮБЫЕ / ВСЕ операторы (больше колонки) - PullRequest
0 голосов
/ 27 января 2020

У меня есть запрос, подобный следующему ( данные взяты из учебника )

SELECT State, EventType, DamageProperty From StormEvents where DamageProperty >= ALL(select DamageProperty from StormEvents where State = 'NEW YORK') AND EventType = 'Wildfire'

Я хочу перевести этот запрос на KQL, но у меня возникают проблемы с переводом ALL operator.

Следующий запрос получит те же результаты:

StormEvents | where (DamageProperty >= toscalar( StormEvents | where State == "NEW YORK" | summarize max(DamageProperty) ) and EventType == "Wildfire") | distinct State, EventType, DamageProperty | limit 1000

Но я не хочу использовать max(), я хочу в будущем знать, как использовать any / все операторы (и почему-то я не нашел что-то связанное с Google).

Ответы [ 2 ]

1 голос
/ 27 января 2020

Я не знаю Кусто. Но следующее SQL эквивалентно:

select se.State, se.EventType, se.DamageProperty
from StormEvents se
where se.DamageProperty >= (select max(se2.DamageProperty)
                            from StormEvents se2
                            where se2.State = 'NEW YORK'
                           ) and
      se.EventType = 'Wildfire';

Мне также кажется странным, что вы фильтруете тип события только во внешнем запросе. Я ожидаю, что в подзапросе будет такой же фильтр.

Примечание. Существует разница между этой версией и вашим запросом, если в подзапросе нет совпадающих строк. Вы можете справиться с этим небольшим изменением:

where se.DamageProperty >= (select coalesce(max(se2.DamageProperty), se.DamageProperty)
                            from . . .
0 голосов
/ 28 января 2020

Оказывается, что нет прямого перевода на ЛЮБОЙ / ВСЕ.

Ответ, который я получил от службы поддержки Microsoft:

Мы рассмотрели ваш запрос и, к сожалению, мы смогли в данный момент не удается найти способ перевести операторы ANY / ALL в поток Kusto. Мы будем продолжать искать обходной путь, но мы рекомендуем вам попробовать поискать альтернативы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...