简介
原文链接:https://zhuanlan.zhihu.com/p/92654574
此部分官方文档:https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html
注意:
从版本8.0开始,MySQL支持窗口函数。窗口函数允许您以新的,更简单的方式解决查询问题,并具有更好的性能。
窗口函数的基本语法如下:
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名>)
<窗口函数>的位置,可以放以下两种函数:
- 1) 专用窗口函数,包括后面要讲到的rank, dense_rank, row_number等专用窗口函数。
- 2) 聚合函数,如sum. avg, count, max, min等
如何使用?
1. rank() 专用窗口函数
例如下图,是班级表中的内容:
如果我们想在每个班级内按成绩排名,得到下面的结果:
以班级“1”为例,这个班级的成绩“95”排在第1位,这个班级的“83”排在第4位。上面这个结果确实按我们的要求在每个班级内,按成绩排名了。
得到上面结果的sql语句代码如下:
select *,