本笔记为阿里云天池龙珠计划SQL训练营的学习内容,链接为:https://tianchi.aliyun.com/specials/promotion/aicampsql;
窗口函数概念:
窗口函数也称为OLAP函数。OLAP 是OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。
为了便于理解,称之为窗口函数。常规的SELECT语句都是对整张表进行查询,而窗口函数可以让我们有选择的去某一部分数据进行汇总、计算和排序。
窗口函数的通用形式:<窗口函数> OVER ([PARTITION BY <列名>]
ORDER BY <排序用列名>) (【】中内容可省略)
关键字
PARTITON BY是用来分组,即选择要看哪个窗口,类似于GROUP BY 子句的分组功能,但是PARTITION BY 子句并不具备GROUP BY 子句的汇总功能,并不会改变原始表中记录的行数。
ORDER BY是用来排序,即决定窗口内,是按某种规则(字段)来排序的。
窗口函数分类
一是 将SUM、MAX、MIN等聚合函数用在窗口函数中
二是 RANK(英式排序)、DENSE_RANK(中式排序)、ROW_NUMBER排序用的专用窗口函数