TopOne (Azure 串流分析)

會傳回排名最高的記錄,其中 rank 會根據指定的順序定義視窗中事件的排名位置。 排序/等級是根據事件資料行,而且可以在 ORDER BY 子句中指定。

語法

-- Aggregate Function Syntax
TopOne( [ <scalar_expression> ] ) OVER (ORDER BY (<column name> [ASC |DESC])+)  

-- Analytic Function Syntax
TopOne( [ <scalar_expression> ] ) OVER ([<PARTITION BY clause>] ORDER BY (<column name> [ASC |DESC])+ <LIMIT DURATION clause> [<WHEN clause>])  

引數

<scalar_expression>

TopOne 會採用選擇性的純量運算式,可讓您在頂端事件上指定投影。 如果沒有 參數,則會傳回完整的事件記錄。

<column_name>

指定輸入事件中完成排序的資料行名稱。 請注意,只允許依 Bigint、float 和 datetime 類型排序。

OVER ([ < PARTITION BY 子句 LIMIT DURATION 子句 [ < WHEN 子 >< 句 >> ]]

決定套用 TopOne 的資料列群組。 PARTITION BY 子句會指定具有相同分割區索引鍵的資料列會群組在一起。 LIMIT DURATION 子句會指定群組中包含多少歷程記錄。 選擇性的 WHEN 子句會指定要包含在群組中的資料列布林值條件。 如需使用量的詳細資訊,請參閱 OVER 子句

傳回型別

參數投影 <scalar_expression> 的值,如果沒有提供任何參數,則為記錄值。

範例

SELECT   
    TopOne() OVER (ORDER BY value DESC) as topEvent  
FROM input  
GROUP BY Tumbling(second, 10)  
  
SELECT   
    TopOne(x * y) OVER (ORDER BY value DESC) as topEvent  
FROM input  
GROUP BY Tumbling(second, 10)