1、用一条SQL语句查询出每门课都大于80粉的学生姓名
题目数据如下:
分析:每门课都大于80分,就是说学生最低分数要大于80分,我们直观看只有"王五"这个学生每门课分数都在80分以上。
解决思路:这里需要用到聚合函数min(score),查询出最低分数大于80分的学生即可。使用了聚合函数,条件就需要使用having语句。
第一步,查询姓名,最低分数。
第二步,这里只能查询出最低分数的那个人。需要改进,根据用户名分组(group by name),这样就能查询出每个人的最低分数。
第三步,查询出了每个人的最低分数,我们只需要得到最低分数大于80的学生。通过having语句来筛选。
第四步,我们得到了"王五"的信息,满足我们的要求,但是不是最终的需求,最终的需求是得到每门课大于80分的学生姓名。这样,我们需要再嵌套一个语句,只得到姓名。
select
name
from
(select name,min(score)
from student
group by name
having min(score)>80) 。