Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
✅ Fluxo de eventos do Azure Stream Analytics ✅ Fabric
Para cada linha, a cláusula OVER determina o agrupamento de linhas antes que uma função de agregação ou análise associada seja aplicada.
Você pode usar a cláusula OVER em qualquer lugar em que uma função escalar seja permitida. Por exemplo, você pode usar a cláusula OVER nas cláusulas SELECT, WHERE, JOIN ou GROUP BY.
A cláusula OVER agrupa linhas diretamente da entrada de consulta. Ela não é afetada por predicados na cláusula WHERE, condições de junção na cláusula JOIN ou condições de agrupamento na cláusula GROUP BY.
Atualmente, há suporte para as seguintes funções de agregação com a cláusula OVER:
- SOMA
- AVG
- Minuto
- MÁX.
Sintaxe
OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
<PARTITION BY clause> ::== PARTITION BY partition_key, ... [n]
<LIMIT DURATION clause> ::== LIMIT DURATION (unit, length)
<WHEN clause> ::== WHEN boolean_expression
Argumentos
<Cláusula PARTITION BY>
Especifica que somente as linhas com o mesmo <partition_key> serão consideradas para a função de agregação ou análise.
<Cláusula LIMIT DURATION>
Especifica a quantidade de histórico da linha atual incluída no grupo. Consulte DATEDIFF para obter uma descrição detalhada das unidades com suporte e suas abreviações.
<CLÁUSULA WHEN>
Especifica a condição booliana para as linhas a serem incluídas no grupo.
Comentários gerais
Aplicar uma função agregada ou analítica com OVER no conjunto de resultados de uma função de janela pode produzir resultados inesperados. As funções de janela alteram o carimbo de data/hora dos eventos, pois cada operação de janela gera eventos no final da janela. O carimbo de data/hora atual de um evento pode ser acessado com system.timestamp(), após uma operação de janela, ele será diferente do atributo de hora do evento original.
Exemplos
Compute a temperatura média nos últimos 5 minutos, por sensor:
SELECT AVG(temperature) OVER (PARTITION BY id LIMIT DURATION (minute, 5))
FROM input
Gere um alerta se o recurso não estiver íntegro na última hora:
SELECT 1 AS alert
FROM input
WHERE MAX(healthy) OVER (PARTITION BY id LIMIT DURATION (hour, 1)) = 0