用sql语句查询每门成绩都大于80的学生姓名?
(2016-07-05 11:45:33)
标签:
it |
分类: 数据库 |
用sql语句查询每门成绩都大于80的学生姓名?
表名stu 结构如下
name km fs
张三 语文 81
张三 数学 75
李四 语文 76
王五 英语 90
李四 数学 90
王五 语文 81
王五 数学 99
本来数据库查询就半桶水的我,很久没玩sql,解决这题花了10分钟才解决。
解题思路一:
(1)先查询出所有名字去重,select distinct name from stu
(2)再查询出成绩小于80分的名字去重,select distinct name from stu where fs<80
(3)接下来就是查询,名字不在第二步中的名字,得出结果
select distinct name from stu where name not in (select distinct name from stu where fs<80)
解题思路二:
(1)先查询出所有用户,并分组,select name from stu group by name
(2)再通过having加一个条件,每个分组最小的成绩必须大于80的显示出现,having min(fs)>80
(3)最终结果是:select name from stu group by name having min(fs)>80