题解 | #找出每个学校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 最小的数据。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务