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

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

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

SELECT
    device_id,
    university,
    gpa
FROM user_profile
WHERE (university,gpa) 
        IN (
            SELECT
            university,
            MIN(gpa)
            FROM user_profile
            GROUP BY university
            )           
ORDER BY university

很容易可以看出需要使用GROUP BY对university进行分组后,使用MIN()聚合函数计算组内最小gpa。

难点在于怎么在返回的结果中加上device_id列。

步骤分解:

  1. 子查询:按university分类计算最低gpa,返回两列多行的列表
  2. 外查询:SELECT子句选择所有需要被返回的列,WHERE子句设定筛选器,满足uni和gpa均与子查询相同。由于子查询返回非单一值,为一个列表,故使用IN关键字。
全部评论

相关推荐

owwhy:难,技术栈在嵌入式这块显得非常浅,并且简历有大问题。教育经历浓缩成两行就行了,写什么主修课程,说的不好听这块没人在意,自我评价删了,项目写详细点,最终简历缩成一页。相关技能怎么说呢,有点差了,还写成这么多行
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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