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)