题解 | #找出每个学校GPA最低的同学#
找出每个学校GPA最低的同学
https://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065
利用窗口函数来做
代码如下
select device_id,university,gpa from (select device_id,university,gpa, rank()over(partition by university order by gpa asc) as rk from user_profile) as a where a.rk=1;
解析
1、利用rank()over()对gpa分组升序排序
得到表格如下
以学校为组,给该校的gpa赋予排名
2、将有排名的表格作为数据源
对有排名的的表格进一步筛选,将排名为1的整行数据取出来(升序排序,小的在前面)