题解 | #找出每个学校GPA最低的同学#
找出每个学校GPA最低的同学
http://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065
SELECT
device_id,
university,
gpa
FROM
(
SELECT
device_id,
university,
gpa,
row_number() over(partition by university order by gpa) as rk
FROM
user_profile
) t
WHERE t.rk = 1 重点在于子查询中的最后一行,其中row_number() over(partition by university order by gpa) as rk 表示的意思是将数据按照 university 分组,组内按照 gpa 升序排列,返回值是对应行在组内的排名。
这样,rk = 1 的数据表示的就是某个大学中 gpa 最小的数据。