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