什么是窗口函数
窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。
窗口函数语法
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>)
<窗口函数>的位置,可以放以下两种函数:
1) 专用窗口函数,包括rank, dense_rank, row_number等专用窗口函数。
2) 聚合函数,如sum. avg, count, max, min等
rank, dense_rank, row_number区别
1、rank :遇重复值排序并列,然后跳跃到当前排序记录次数开始(递增或递减)排序。例如,排名1,2,2,4,4,6
2、row_number 遇重复值排序不并列,连续不间断(递增或递减)排序。例如,排名1,2,3,4,5,6
3、dense_rank 遇重复值排序并列,然后继续不间断(递增或递减)排序。例如,排名1,2,3,3,3,4