加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

用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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有