从MySQL8.0开始,MySQL增加了对窗口函数的支持。本文主要介绍如何利用窗口函数row_number(),dense_rank()和rank()解决相关排名问题。
说明:本文中的SQL代码均测试于MySQL8.0.13环境。
在总体上进行排名:
# 创建学生成绩表:
create table grade(
id int,
name varchar(10),
score int (10)
)engine myisam charset utf8mb4;
# 向成绩表中插入数据:
insert into grade values
(1,'张无忌',85),
(2,'李隆基',59),
(3,'王五',60),
(4,'曹操',79),
(5,'小明',90),
(6,'如花',60),
(7,'尉迟恭',100),
(8,'欧阳风',90),
(9,'刘备',90),
(10,'董永',99),
(11,'冯钰',83),
(12,'孙殿英',82);
查看grade表中的信息:
select * from grade;
结果:
(1)查询所有学生的成绩信息和排名情况(普通排名,无任何约束条件)&#