一.什么是窗口函数
窗口函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。
二.窗口函数的使用
2.1窗口函数的基本语法如下:
‹窗口函数› over (partition by ‹用于分组的列名› order by ‹用于排序的列名›)
2.2 ‹窗口函数›的位置,可以放以下两种函数:
- 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数。
- 聚合函数,如sum. avg, count, max, min等
因为窗口函数是对where或者group by子句处理后的结果进行操作,所以窗口函数原则上只能写在select子句中。
2.3 简单来说,窗口函数有以下功能:
- 同时具有分组和排序的功能
- 不减少原表的行数
三.专用窗口函数
3.1 各种专用窗口函数
rank()、dense_rank()、row_number()、...
在上述的这三个专用窗口函数中,函数后面的括号不需要任何参数,保持()空着就可以。
3.2 各种专用窗口函数的区别
这三个函数区别在于对排名并列情况的输出结果不同。