다음을 통해 공유


CollectTOP(Azure Stream Analytics)

순위가 지정된 레코드의 배열을 반환합니다. 여기서 순위는 지정된 순서에 따라 기간 내 이벤트의 순위 위치를 정의합니다. 순서/순위 지정은 이벤트 열을 기반으로 수행되며 ORDER BY 절로 지정할 수 있습니다.

Syntax

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

인수

<정수인 이벤트 수>

기간 내에 사용자가 수집하려고 하는 최상위 이벤트 수입니다.

<scalar_expression>

CollectTop은 수집된 이벤트에 대한 프로젝션을 지정할 수 있는 선택적 스칼라 식을 사용합니다. 매개 변수가 없으면 전체 이벤트 레코드가 수집됩니다.

<열 이름>

입력 이벤트의 열 이름으로, 이 이름에 따라 순서가 지정됩니다. bigint/float/datetime 유형별로만 순서를 지정할 수 있습니다.

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

CollectTop이 적용되는 행 그룹을 결정합니다. PARTITION BY 절은 동일한 파티션 키를 가진 행이 함께 그룹화되도록 지정합니다. LIMIT DURATION 절은 그룹에 포함된 기록의 양을 지정합니다. WHEN 절은 그룹에 포함할 행에 대한 부울 조건을 지정합니다. 사용량에 대한 자세한 내용은 OVER 절 을 참조하세요.

반환 형식

{ "rank" 형식의 레코드 배열 : bigint, "value": <projected_type> }. 여기서 <projected_type> 식이 지정되지 않은 경우 또는 레코드의 <scalar_expression> 형식입니다.

설명

Null은 최소 값으로 처리됩니다. 자세한 내용은 https://msdn.microsoft.com/library/ms188385.aspx

예제

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

예제 입력:

예제 입력

예제 출력:

예제 출력

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