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

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

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

注意按学校升序(默认)排序
-- 子查询
SELECT a.device_id
      ,a.university
      ,a.gpa
from user_profile a
where gpa in (
              select min(b.gpa)
              from user_profile b 
              where a.university = b.university )
order by a.university

-- 子查询进阶
SELECT a.device_id
      ,a.university
      ,a.gpa
from user_profile a
where (university,gpa) in (
              select b.university  -- 不是纯聚合字段,需要配合group by
                    ,min(b.gpa)
              from user_profile b 
              group by b.university )
order by a.university

-- 使用all子查询
SELECT a.device_id
      ,a.university
      ,a.gpa
from user_profile a
where gpa <= all (
              select b.gpa
              from user_profile b 
              where a.university = b.university )
order by a.university
全部评论
题目中没有说要按照学校排序啊,哪位大佬可以告知一下
点赞 回复 分享
发布于 2022-08-21 15:51 浙江
这题可不可以用存在性判断呢
点赞 回复 分享
发布于 2024-12-25 17:43 四川
厉害
点赞 回复 分享
发布于 2023-04-14 22:12 广东
gpa重复的话这三个方法不太行啊
点赞 回复 分享
发布于 2022-08-26 10:23 上海
好像不需要都要a b别名吧
点赞 回复 分享
发布于 2022-07-25 09:54
不太明白为什么要order by,大神可以指点以下不
点赞 回复 分享
发布于 2022-05-21 14:06
all 查询a.university = b.university 这个是什么意思这个的筛选是怎么实现的呀
点赞 回复 分享
发布于 2022-01-21 23:50

相关推荐

点赞 评论 收藏
分享
评论
86
12
分享

创作者周榜

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