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 最小的数据。