0
点赞
收藏
分享

微信扫一扫

sql 面试题开窗函数row_number() over(partition by ... 分组 order by ...排序) as rn

大雁f 2022-10-22 阅读 83

表结构:

sql 面试题开窗函数row_number() over(partition by ... 分组  order by ...排序) as rn_数据

 

 

问题:求出每个班前三成绩的人姓名班级和排名

-- 解析,开窗函数, over(partition by 分组列1,分组列2   order by  排序列)as  排名

第一阶段全部数据排名:

sql 面试题开窗函数row_number() over(partition by ... 分组  order by ...排序) as rn_数据_02

 

 

第二阶段筛选排名

SELECT
rn ,
score,
class,
sname
from
(
SELECT
*,
ROW_NUMBER()
OVER(PARTITION by
class
order by
score desc
) rn
from
std_score
)t
where
t.rn <= 3
;

 结果:

sql 面试题开窗函数row_number() over(partition by ... 分组  order by ...排序) as rn_数据_03

 

 

 



举报

相关推荐

0 条评论