题解 | #找出每个学校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的,因为每个学校只有一个,所以经过排序后得到结果

全部评论

相关推荐

07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
我看看你怎么个事来
牛牛爱吃草草:我看看你怎么个事来
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务