题解 | #找出每个学校GPA最低的同学#

找出每个学校GPA最低的同学

https://www.nowcoder.com/practice/90778f5ab7d64d35a40dc1095ff79065

SELECT a.device_id, a.university, a.gpa
FROM user_profile a,
(
SELECT device_id, university, ROW_NUMBER() OVER(PARTITION BY university ORDER BY gpa) rak, gpa
FROM user_profile
) b
WHERE
a.device_id = b.device_id AND b.rak = 1
ORDER BY a.university

易错点:在第一行的选择上没有指定字段的来源表,一直报错

原先是思路是直接用groupby,但是一直报错,因为我只对gpa进行取最小。

本代码是思路是:任务是找到id(想到整条记录),并且是每个学校的(想到分组),gpa最低(想到排序)

1.使用开窗函数,进行唯一的排序,根据学校,这样就能得到每个学校的gpa最低的,排序为1,

2.进行自连接,并且选中排序为1的,因为每个学校只有一个,所以经过排序后得到结果

全部评论

相关推荐

出自剑来:找工作就是运气大于实力的事 我们组的应届生也是上周在牛客招聘被百度的捞了,一周速通下of
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务