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.測試數據集