窗口函数
先简单介绍一下窗口函数的含义。
基本语法:
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>)
<窗口函数>的位置,可以放以下两种函数:
1) 专用窗口函数,如rank, dense_rank, row_number等
2) 聚合函数,如sum. avg, count, max, min等
需要注意的是,用rank()等后面的括号保持为空即可,用sum(字段)等后面括号必须写入要聚合的字段。
(1)rank, dense_rank, row_number
举个简单的例子,row_number的排名不重复(如1,2,3),rank和dense_rank都考虑重复值的情况(如都存在1,1),但rank的排名可能不连续(如1,1,3),而dense_rank的排名没有间隙(如1,1,2)
(2)聚合函数
实质上就是累计到当前行求和/平均/计数/最大/最小