题解 | 找出每个学校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关键字。
全部评论

相关推荐

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

创作者周榜

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