mysql子查询总分最高的学生_SQL使用子查询,查找班级成绩最高分

-- 根据要求,获取班级成绩的最高分的学生

-- 第一个子查询,先去各个科目的最高,再横向比较各个科目的最高,再取最高分的那个科目

-- 第二个子查询,查询每个同学的最高分

-- 最后,通过第一个子查询查询出第一个最高分,和第二个子查询查询出学生的最高,当这两个相同时,即要获取的最高分

第一:子查询做的就是先去每个科目的最高分,再取各个科目的最高分

第一:使用MAX取个各科的最高分(MAX返回一列中的最大值,即纵向比较取最大值)

第二:纵向比较之后,需要横向比较多个科目的最高分,再取多个科目的最大值,从多个值中取最大值 GREATEST

第三:需要取的是每个班级的最高分,所以需要使用到分组 GROUP BY

SELECT class_name,GREATEST(MAX(Linux),MAX(MySQL),MAX(Java)) 'course_maxscore'

from tb_grade_score

GROUP BY class_name

第二:子查询做的就是查询每个同学的最高分,得出最高分,最后判断最高和第一个子查询的最高分是否一致,一致就是要找的学生

使用GREATEST比较多个科目的分数,得出最大值

SELECT * ,GREATEST(Linux,MySQL,Java)'Maxscore' FROM tb_grade_score

第三:第一二子查询,根据条件查询 班级分数最高分和学生的最高分是否一致,一致的话,就是要找的最高分

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值