CollectTOP (Azure Stream Analytics)

Zwraca tablicę rekordów sklasyfikowanych, gdzie ranga definiuje pozycję klasyfikacji zdarzenia w oknie zgodnie z określoną kolejnością. Kolejność/klasyfikacja jest oparta na kolumnach zdarzeń i może być określona w klauzuli ORDER BY.

Składnia

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

Argumenty

<liczba zdarzeń jako literał liczby całkowitej>

Liczba najważniejszych zdarzeń, które użytkownik chce zebrać z okna.

<Scalar_expression>

Funkcja CollectTop przyjmuje opcjonalne wyrażenie skalarne, które umożliwia określenie projekcji dla zebranych zdarzeń. Bez parametru zbierane są pełne rekordy zdarzeń.

<nazwa kolumny>

Nazwa kolumny w zdarzeniu wejściowym, za pomocą którego będzie wykonywane porządkowanie. Dozwolone jest tylko porządkowanie według typów bigint/float/datetime.

OVER ([<PARTITION BY klauzula LIMIT DURATION klauzuli>>< [<KLAUZULA> WHEN]]

Określa grupę wierszy, dla których jest stosowany element CollectTop. Klauzula PARTITION BY określa, że wiersze z tym samym kluczem partycji zostaną zgrupowane razem. Klauzula LIMIT DURATION określa, ile historii jest zawarta w grupie. Klauzula WHEN określa warunek logiczny dla wierszy do ujęć w grupie. Zobacz klauzulę OVER , aby uzyskać więcej informacji na temat użycia.

Typy zwracane

Tablica rekordów typu { "rank" : bigint, "value": <projected_type> }, gdzie <projected_type> jest typem rekordu <scalar_expression> lub rekordu, jeśli nie określono wyrażenia.

Uwagi

Wartość null jest traktowana jako minimalna wartość, aby uzyskać więcej informacji https://msdn.microsoft.com/library/ms188385.aspx

Przykłady

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

Przykładowe dane wejściowe:

Przykładowe dane wejściowe

Przykładowe dane wyjściowe:

Przykładowe dane wyjściowe

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