1 窗口函数
1.1 窗口函数基础
-
窗口函数:
- 介绍:窗口函数也称
OLAP函数
,OLAP 是OnLine Analytical Processing 的简称,意思是对数据库数据进行实时分析处理 - 作用:进行排序、生成序列号等一般的聚合函数无法实现的高级操作
- 语法:
<窗口函数> OVER ([PARTITION BY <列名>] ORDER BY <排序用列名>)
- 介绍:窗口函数也称
-
关键字 PARTITON BY:
- 作用:分组(横向上对表进行分组),用来设定排序的对象范围。即选择看哪个“窗口”
- 窗口:通过
PARTITION BY
分组后的记录集合,称为“窗口”。这也是窗口函数的由来。 - 和
GROUP BY
的区别:PARTITION BY
不具备GROUP BY
的汇总功能
-
关键字 ORDER BY:
- 作用:排序(决定纵向排序的规则),指定哪一列、按照什么顺序进行排序。即在“窗口”内,按照哪种规则排序
- 和
SELECT
语句中的ORDER BY
关系:窗口函数中的ORDER BY
和它一样,可以通过关键字ASC/DESC
来指定升序和降序。
因此,窗口函数具有两种功能,分组和排序
-
例子:指定了
PARTITION BY
SELECT product_name ,product_type ,sale_price ,RANK() OVER (PARTITION BY product_type ORDER BY sale_price) AS ranking FROM Product
分析:- 【例子】没指定
PARTITION BY
SELECT product_na
- 【例子】没指定