题解 | #找出每个学校GPA最低的同学#
找出每个学校GPA最低的同学
http://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065
1. 同时具有分组和排序功能: 使用窗口函数,其中有三种不同的排序函数(rank,dense_rank,row_number);
2. 多个最低分:因为每个大学的最低gpa可能有同分的多名同学,所以需要使用dense-rank将多个最低分都排名为1,取出来;
3. 排序:依照大学排序;同一大学,多个最低分同学,也要排序;
select device_id, university,gpa from (select *, DENSE_RANK()over(partition by university order by gpa asc) as denseRank from user_profile) as t where denseRank = 1 order by university,gpa ASC;