# 这个题用到了窗口函数 select device_id,university,gpa from (select * , row_number() over(partition by university order by gpa) as ranking from user_profile ) as user where user.ranking=1; # 窗口函数 # 什么是窗口函数? # 简而言之是一种用来生在分组中进行分析处理的函数 # 语法结构如下 # <窗口函数>() over (partition by <用于分组的字段> order by <用于排序的字段>) # <窗口函数>的位置可以放两种函数 # 专用窗口函数rank, dense_rank, row_number 等等 # 聚合函数, 如sum, avg, count, max, min 等等 # 附录:TopN问题的模板 # SELECT * # FROM (SELECT*,row_number() over (PARTITION BY 姓名 ORDER BY 成绩 DESC) AS ranking # FROM test1) AS newtest # WHERE ranking<=N;