Compartilhar via


CollectTOP (Azure Stream Analytics)

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. Ordenação/classificação baseia-se 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 de 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 de eventos completos são coletados.

<nome da coluna>

Nome da coluna no evento de entrada, pelo qual classificação será feita. É permitido apenas pedidos por tipos float/bigint/datetime.

OVER ([<Cláusula LIMIT DURATION> da cláusula><PARTITION BY [<cláusula> WHEN]]

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 booliana para as linhas a serem incluídas no grupo. Consulte a cláusula OVER para obter mais detalhes sobre o uso.

Tipos de retorno

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

Comentários

Nulo é tratado como o valor mínimo, para obter mais informações, examine 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  

Entrada de exemplo:

Entrada de exemplo

Saída de exemplo:

Saída de exemplo

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