Partilhar via


CollectTOP

✅ Azure Stream Analytics ✅ Fabric Eventstream

Retorna uma matriz de registros classificados, onde a classificação define a posição de classificação do evento na janela de acordo com a ordem especificada. A ordenação/classificação é baseada em colunas de eventos e pode ser especificada na cláusula ORDER BY.

Sintaxe

-- Aggregate Function Syntax
CollectTop(<number of events as integer literal> [ , <scalar_expression> ]) OVER (ORDER BY (<column name> [ASC |DESC])+)

-- Analytic Function Syntax
CollectTop(<number of events as integer literal> [ , <scalar_expression> ]) OVER ([<PARTITION BY clause>] ORDER BY (<column name> [ASC | DESC])+ <LIMIT DURATION clause>  [<WHEN clause>])

Argumentos

<Número de eventos como literal inteiro>

O número de eventos principais que o usuário deseja coletar da janela.

<scalar_expression>

CollectTop usa uma expressão escalar opcional que permite especificar uma projeção sobre os eventos coletados. Sem o parâmetro, os registros completos de eventos são coletados.

<nome da coluna>

Nome da coluna no evento de entrada, pelo qual a ordenação será feita. Só é permitida a ordenação por tipos bigint/float/datetime.

OVER ([<PARTIÇÃO POR cláusula<>LIMIT DURATION clause> [<WHEN clause>]]

Determina o grupo de linhas sobre o qual CollectTop é aplicado. A cláusula PARTITION BY especifica que as linhas com a mesma chave de partição serão agrupadas. A cláusula LIMIT DURATION especifica quanto histórico está incluído no grupo. A cláusula WHEN especifica uma condição booleana para as linhas a serem incluídas no grupo. Consulte a cláusula OVER para obter mais detalhes sobre o uso.

Tipos de devolução

Matriz de registros do tipo { "rank" : bigint, "value": <projected_type> }, onde <projected_type> é o tipo do <scalar_expression> ou um registro se nenhuma expressão for especificada.

Observações

Nulo é tratado como o valor mínimo, para obter mais informações, consulte https://msdn.microsoft.com/library/ms188385.aspx

Exemplos

SELECT   
    value1,  
    CollectTop(2) OVER (ORDER BY value2 ASC, value3 DESC) as top1  
FROM testinput timestamp by time  
GROUP BY TumblingWindow(second, 5), value1  

Exemplo de entrada:

Exemplo de entrada

Exemplo de saída:

Exemplo de saída

SELECT   
    value1,  
    CollectTop(2, x + y) OVER (ORDER BY value2 ASC, value3 DESC) as top1  
FROM testinput timestamp by time  
GROUP BY TumblingWindow(second, 5), value1