Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
✅ Поток событий Azure Stream Analytics ✅ Fabric
Возвращает значение 1, если событие является первым событием в пределах заданного фиксированного интервала или 0 в противном случае. Интервалы выравниваются так же, как и переворачивающиеся окна (см. раздел "Переворачивающееся окно"). ISFIRST не влияет на предикаты в предложении WHERE, условия соединения в предложении JOIN или выражения группировки в предложении GROUP BY текущего запроса. ).
Синтаксис
ISFIRST ( timeunit , duration )
[ OVER ( [PARTITION BY partition_by_expression] [WHEN when_expression]) ]
Аргументы
timeunit
Единица времени в течение длительности. В следующей таблице перечислены все допустимые значения единиц времени --- оба полных
имена и аббревиаты могут использоваться в запросе.
| Timeunit | Аббревиатуры |
|---|---|
| день | дд, д |
| час | Чч |
| минута | mi, n |
| секунда | ss, s |
| миллисекунда | мс |
| микросекунда | mcs |
длительность
Большое целое число, указывающее количество единиц времени в интервале. Например:
ISFIRST(минута, 15) будет смотреться на 15-минутные интервалы. Время начала интервалов
выравнивается таким же образом, как в переворачивающихся окнах (см. раздел "Переворачивающееся окно").
[ OVER ( partition_by_clause [when_clause]) ]
Предложение OVER указывает подмножество событий, среди которых это событие ранжируется:
Предложение PARTITION BY partition_by_expression делит результирующий набор, созданный from the FROM
предложение в секции, к которым применяется функция. Другими словами, каждое событие сравнивается
только для таких других событий, которые разделяют его значение partition_by_expression. Если не указано, каждый из них
событие ранжируется относительно всех других событий в течение интервала времени.
Если предложение when_expression указывает логическое условие для рассмотрения событий.
Другими словами, каждое событие оценивается только по сравнению с такими другими событиями, которые удовлетворяют
when_expression. Если само событие не удовлетворяет when_expression, функция возвращает значение 0.
Предложение WHEN является необязательным.
Типы возвращаемых данных
bigint (либо "1", либо "0", представляющий "true" или "false" соответственно)
Общие замечания
ISFIRST является недетерминированным. События обрабатываются в темпоральной последовательности. При наличии нескольких событий с одинаковыми событиями метки времени обрабатываются в порядке прибытия.
Применение ISFIRST к результирующем набору функции окна может привести к непредвиденным результатам. Функции окна изменяют метку времени событий, так как каждая операция окна выводит событие в конце окна. Текущая метка времени события может быть доступна с помощью system.timestamp(), после операции окна она будет отличаться от исходного атрибута времени события. Если не удается переместить ISFIRST перед операцией окна, рассмотрите возможность использования CollectTop, упорядочение по исходному времени события.
Примеры
Указывает, является ли событие чтения датчика первым в течение 10 минут интервалов переворачивания:
SELECT
reading,
ISFIRST(mi, 10) as first
FROM Input
Укажите, является ли событие первым в течение 10 минут интервалов переворачивания на идентификатор устройства:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid) as first
FROM Input
Указывает, является ли событие первым событием со значением, превышающим 50 в течение 10 минут интервалов переворачивания
per deviceid:
SELECT
deviceid,
reading,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading > 50 AND devicetype = 'thermostat') as firstAbove,
ISFIRST(mi, 10) OVER (PARTITION BY deviceid WHEN reading < 50 AND devicetype = 'thermostat') as firstUnder
FROM Input
WHERE
devicetype = 'thermostat'