MYSQL窗口函数用法及区别
本博客转自: https://blog.csdn.net/weixin_34384915/article/details/87551597 窗口函数(OLAP 实时分析处理函数) ,可以一般聚合函数无法实现的高级操作。诸如排序、生成序列号等功能。目前 DBMS 逐步都完成了对窗口函数的支持,唯独 MySql 不支持(但是 Mysql 8 开始支持了)。 1. 窗口函数语法: <窗口函数> OVER ([PARTITION BY <列清单>] ORDER BY <排序用列清单>) 语法解释: 窗口函数分两类 (1.能够作为窗口函数的聚合函数 2.RANK、DENSE_RANK、ROW_NUMBER 等专用窗口函数) PARTITION BY : 设定排序的对象范围 ORDER BY : 指定按照哪一列、何种顺序进行排序 2. 专有开窗之一 (RANK函数)、快速了解开窗函数使用 RANK函数 : 用于计算记录排序的函数 例子表 需求: 根据不同的商品种类(product_type),按照销售单价(sale_price) 从低到高的顺序排序 ? 答案解析 总结 :PARTITION BY 横向对表进行分组、ORDER BY 决定纵向排序的规则。通过 PARTITION BY 分组后的集合称为窗口。 2.1 不使用 PARTITION BY 情况下: 例子