當前位置:成語大全網 - 書法字典 - Hive窗口函數

Hive窗口函數

First_value:組內排序後當前行的第壹個值;

Last_value:截至當前行的組內排序後的最後壹個值;

lead(col,n,default):用於計算窗口中第n行的值。第壹個參數是列名,第二個參數是向下第N行(可選,默認值為1),第三個參數是默認值(向下第N行為空時取默認值,否則為空);

lag(col,n,default):與lead相反,它用於計算窗口中第n行的值。第壹個參數是列名,第二個參數是向上第n行(可選,默認值為1),第三個參數是默認值(當向上第n行為空時,取默認值,否則為空)。

1)使用標準聚合函數count、sum、min、max、avg。

2)使用partition by語句,使用壹個或多個原始列。

3)使用partition by和order by語句,並使用壹個或多個分區或排序列。

4)使用支持以下格式的窗口規範:

當ORDER BY之後缺少window子句條件時,默認的窗口規格是介於未限定的前壹行和當前行之間的範圍。

當ORDER BY子句和window子句都缺失時,默認的窗口規格是“無界在前”和“無界在後”之間的行。

OVER子句支持以下函數,但不支持將其用於windows。

排名函數:rank、ntile、denserank、cumedist、percentrank。

超前和滯後功能。

Row_number():從1開始,按順序生成組內記錄的順序,例如按pv降序生成組內pv排名;獲得組內top1記錄;獲取會話中的第壹條記錄,依此類推。

Rank():生成組內數據項的排名。同等排名將在排名中留下空缺。

Dense_rank():生成數據項在組內的排名,並且該排名不會在排名中留下任何空缺。

Cume_dist:小於或等於當前值的行數/組中的總行數。例如,統計當前工資少於或等於總人數的人數比例。

Percent_rank:(組中當前行的排名值-1)/(組中的總行數-1)。

ntile(n):用於將分組後的數據按順序分成n個切片,並返回當前切片值。如果切片不均勻,默認情況下將增加第壹個切片的分布。Ntle不支持之間的行,例如ntile(2)over(通過在3個先前行和當前行之間創建時間行按cookie順序進行分區)。

4.測試數據集