一、窗口函数的概念
含义: 窗口函数也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据进行实时分析处理。
作用: 窗口函数经常用与解决排名问题,如全班的数学成绩排名、全班数学成绩前10名,等等。
分类: 两种,分别为
专用窗口函数:rank()、dense_rank()、row_number()
聚合函数: count(), sum(), max(), min(), avg()
语法: select 窗口函数 over (partition by 用于分组的列名, order by 用于排序的列名 from table_name
专用窗口函数三者的比较:
上图中ranking使用的是rank(), dese_rank列使用的是dense_rank(), 列row_num使用的是row_number()。可以看出当出现数据相同的时候row_number()依然按照不同数字排名,但是rank()和dense_rank()是按照相同数字并列排名,只不过下一个数字rank()的不连续,dense_rank()的连续。