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:
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