SparkSQL有哪些窗口函數?
開窗函數的引入是為了既顯示聚集前的數據,又顯示聚集后的數據。即在每一行的最后一列添加聚合函數的結果。
開窗用于為行定義一個窗口(這里的窗口是指運算將要操作的行的集合),它對一組值進行操作,不需要使用 GROUP BY 子句對數據進行分組,能夠在同一行中同時返回基礎行的列和聚合列。
聚合函數是將多行變成一行,count,avg....
開窗函數是將一行變成多行;
聚合函數如果要顯示其他的列必須將列加入到group by中
開窗函數可以不使用group by,直接將所有信息顯示出來
1.聚合開窗函數?
聚合函數(列) OVER(選項),這里的選項可以是PARTITION BY 子句,但不可以是 ORDER BY 子句。
2.排序開窗函數?
排序函數(列) OVER(選項),這里的選項可以是ORDER BY 子句,也可以是 OVER(PARTITION BY 子句 ORDER BY 子句),但不可以是 PARTITION BY 子句。
窗口函數的語法:
