Condividi tramite


CollectTOP (Analisi di flusso di Azure)

Restituisce una matrice di record classificati, in cui la classificazione definisce la posizione dell'evento nella finestra in base all'ordine specificato. L'ordinamento o la classificazione si basa sulle colonne dell'evento e può essere specificato nella clausola ORDER BY.

Sintassi

-- 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>])

Argomenti

<number of events as integer literal>

Numero di eventi principali che l'utente vuole raccogliere dalla finestra.

<scalar_expression>

CollectTop accetta un'espressione scalare facoltativa che consente di specificare una proiezione sugli eventi raccolti. Senza il parametro, vengono raccolti record eventi completi.

<nome colonna>

Nome della colonna nell'evento di input in base al quale verrà eseguito l'ordinamento. È consentito l'ordinamento solo in base ai tipi bigint/float/datetime.

OVER ([<CLAUSOLA PARTITION BY><LIMIT DURATION> [<CLAUSOLA> WHEN]]

Determina il gruppo di righe su cui viene applicato CollectTop. La clausola PARTITION BY specifica che le righe con la stessa chiave di partizione verranno raggruppate. La clausola LIMIT DURATION specifica la quantità di cronologia inclusa nel gruppo. La clausola WHEN specifica una condizione booleana per le righe da includere nel gruppo. Per altre informazioni sull'utilizzo, vedere la clausola OVER .

Tipi restituiti

Matrice di record di tipo { "rank" : bigint, "value": <projected_type }, dove <projected_type>> è il tipo di <scalar_expression> o un record se non è specificata alcuna espressione.

Commenti

Null viene considerato come valore minimo, per altre informazioni vedere https://msdn.microsoft.com/library/ms188385.aspx

Esempi

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

Input di esempio:

Input di esempio

Output di esempio:

Output di esempio

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