查询score中选学一门以上课程的同学中分数为非最高分成绩的记录
2016-01-13 23:51
996 查看
学生成绩表
sno 学生编号 cno 专业课程号 degrees成绩
今天遇到一个问题 要求查询表中的各个专业非最高分的同学的成绩
找了很多资料 找到了一些解法 但是感觉不好理解
select * from score a where sno in (select sno from score group by sno having count(*)>1) --查找到选学一门科目以上的人的学号
and
(degrees not in
(select max(degrees) from score b where a.cno=b.cno group by cno))--
没能很好的理解最后的过滤条件
后来我想查出最高分的学生学号/专业号/成绩 然后用not in否掉
所有衍生出
查询成绩表中不同科目的最高分的学生号/分数/科目
select * from score s jion (select cno,max(degrees ) degrees from score group by cno ) sc on (sc.degrees=s.degrees and sc.cno=s.cno);
否掉后发现剩下的并不符合要求 结果如下
由于是靠学号否定的 所有各科成绩全部否掉了
相关文章推荐
- CentOS 7.0,启用iptables防火墙
- C# partial 说明
- 【iOS开发】原生XML解析
- (一一二)名称空间
- JDK配置
- javascript变量作用域
- 高性能之《图片浏览器和引导页》的窥视
- 【python学习笔记】浅探编码
- 人脸识别
- SAR数据下载网站
- linux下使用 ffmpeg 实现MP4转gif
- java基础-java反射机制
- 转换成二进制
- 2015年度总结
- request response
- python get、post提交表单(headers)
- Linux扩展权限
- java--String,toString(课堂)
- Mysql 常用函数
- Django Model层字段类型详解