用窗口函数row_number()over()拿到各个班级的第一名

94 阅读1分钟

1.什么是窗口函数

窗口函数,也叫【OLAP】,联机分析处理,可以对数据库数据进行实时分析处理
窗口函数学习入门

1.1窗口函数

窗口函数:rank、dense_rank、row_number
很容易对比想起聚合函数:sum、avg、count、max、min

2.窗口函数 row_number()over()深入

row_number() over () 用于创建递增序列号

2.1按班级分组

SELECT
	name,
	Classid,
	English,
	row_number( ) over ( partition BY Classid ) AS '班级名次' 
FROM
	CJ

image.png

2.2按班级分组并成绩排名

SELECT
	name,
	Classid,
	English,
	row_number( ) over ( partition BY Classid ORDER BY English DESC ) AS '班级名次' 
FROM
	CJ

image.png

2.3按班级成绩排名再拿到第一

SELECT
	* 
FROM
	( SELECT *,row_number() over ( partition BY Classid ORDER BY English DESC )班级排名 FROM CJ ) AS Newtable
WHERE
	班级排名==1
    

image.png