窗口函数可以进行排序,生成序号等操作,结合查询语句,可以进行一些较为复杂的查询。本文主要介绍窗口函数的用法,以及相关的查询示例。
示例
现在有成绩表grade
calss | name | grade |
高一一班 | 张三 | 79 |
高一一班 | 李四 | 86 |
高一一班 | 王武 | 87 |
高一二班 | 王六 | 90 |
高一二班 | 张望 | 76 |
高一二班 | 刘大 | 88 |
SELECT *,RANK() OVER (PARTITION BY class ORDER BY grade) AS ranking
FROM grade;
在SELECT 子句中,可对已有数据进行分组排序。在上例中,即按照班级(class)分组,再对每个班级的学生成绩(grade)进行排序。
查询结果中展示排名数字。
执行SQL语句后的结果: